私はmysqlにデータベースを持ち、 'campos_personalizados'という名前のテーブルと 'campo_personalizado_envio'という名前のテーブルを持っています。このsqlクエリを取得できません
私はcampo_personalizadoとvalor_campo_personalizadoで 'envio'が必要です。 campo_personalizadoがvithの値と一致しない場合は、null値を持つ行が必要です。私はこのクエリを実行
:
select
cp.id as id_campo,
vcp.id as id_valor_campo,
vcp.valor as valor
from campo_personalizado cp
inner join valor_campo_personalizado vcp on cp.id =
vcp.id_campo_personalizado
inner join valor_campo_personalizado_envio vcpe on vcp.id =
vcpe.id_valor_campo_personalizado
where cp.id_encuesta = 1
私はこの結果にQuery Result
を得た。しかし、私はこのような何かが必要です。
スクリプトデータベース:
CREATE TABLE `encuesta` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `envio` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) NOT NULL,
`id_encuesta` int(11) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (id_encuesta) REFERENCES encuesta(id)
);
CREATE TABLE `envio_encuestado` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) NOT NULL,
`id_envio` int(11) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (id_envio) REFERENCES envio(id)
);
CREATE TABLE `campo_personalizado` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) NOT NULL,
`id_encuesta` int(11) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (id_encuesta) REFERENCES encuesta(id)
);
CREATE TABLE `valor_campo_personalizado` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`valor` varchar(45) NOT NULL,
`id_campo_personalizado` int(11) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (id_campo_personalizado) REFERENCES campo_personalizado(id)
);
CREATE TABLE `valor_campo_personalizado_envio` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_valor_campo_personalizado` int(11) NOT NULL,
`id_envio` int(11) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (id_valor_campo_personalizado) REFERENCES
valor_campo_personalizado(id),
FOREIGN KEY (id_envio) REFERENCES envio(id)
);
INSERT INTO encuesta (nombre) VALUES('encuesta1');
INSERT INTO envio (nombre, id_encuesta) VALUES('sin filtros', 1);
INSERT INTO envio (nombre, id_encuesta) VALUES('valor11', 1);
INSERT INTO envio (nombre, id_encuesta) VALUES('valor11, valor21', 1);
INSERT INTO envio (nombre, id_encuesta) VALUES('valor11, valor21, valor31', 1);
INSERT INTO campo_personalizado (nombre, id_encuesta) VALUES('campo10', 1);
INSERT INTO campo_personalizado (nombre, id_encuesta) VALUES('campo20', 1);
INSERT INTO campo_personalizado (nombre, id_encuesta) VALUES('campo30', 1);
INSERT INTO valor_campo_personalizado (valor, id_campo_personalizado) VALUES('valor11', 1);
INSERT INTO valor_campo_personalizado (valor, id_campo_personalizado) VALUES('valor12', 1);
INSERT INTO valor_campo_personalizado (valor, id_campo_personalizado) VALUES('valor21', 2);
INSERT INTO valor_campo_personalizado (valor, id_campo_personalizado) VALUES('valor22', 2);
INSERT INTO valor_campo_personalizado (valor, id_campo_personalizado) VALUES('valor31', 3);
INSERT INTO valor_campo_personalizado (valor, id_campo_personalizado) VALUES('valor32', 3);
INSERT INTO valor_campo_personalizado (id_valor_campo_personalizado, id_envio) VALUES(1, 2);
INSERT INTO valor_campo_personalizado (id_valor_campo_personalizado, id_envio) VALUES(1, 3);
INSERT INTO valor_campo_personalizado (id_valor_campo_personalizado, id_envio) VALUES(3, 3);
INSERT INTO valor_campo_personalizado (id_valor_campo_personalizado, id_envio) VALUES(1, 4);
INSERT INTO valor_campo_personalizado (id_valor_campo_personalizado, id_envio) VALUES(3, 4);
INSERT INTO valor_campo_personalizado (id_valor_campo_personalizado, id_envio) VALUES(5, 4);
--My sql query is
select
cp.id as id_campo,
vcp.id as id_valor_campo,
vcp.valor as valor
from campo_personalizado cp
inner join valor_campo_personalizado vcp on cp.id =
vcp.id_campo_personalizado
inner join valor_campo_personalizado_envio vcpe on vcp.id =
vcpe.id_valor_campo_personalizado
where cp.id_encuesta = 1
を
画像の代わりにテキストを使用してください。幸福になるでしょう –