我有两张桌子:
Create table Consumidor (
numero int(9),
email varchar(30) not null,
sexo char(1) not null,
nascimento date not null,
constraint Consumidor_sexo_RI001 check (sexo in ('F','M')),
constraint Consumidor_unique_RI002 unique(email),
constraint pk_Consumidor primary key (numero)
);
Create table Dependente (
consumidor int(9),
numero int(2),
sexo char(1) not null,
nascimento date not null,
constraint Dependente_sexo_RI003 check (sexo in ('F','M')),
constraint fk_Dependente_consumidor foreign key (consumidor) references Consumidor(numero) on delete cascade,
constraint pk_Dependente primary key (consumidor,numero)
);
我想做的是选择两张桌子的'sexo'和'nascimento'。我不明白我该怎么做。
------------------ EDIT ----------------------- 结果表应如下所示:
idade | sexo
34 | F
两个表只有两列。
答案 0 :(得分:2)
<强>查询强>:
$parent_style
<强>结果强>:
SELECT c.sexo as "Consumidor", c.nascimento as "Consumidor",
d.sexo as "Dependente", d.nascimento as "Dependente"
FROM
Consumidor c JOIN Dependente d ON c.numero = d.consumidor
ORDER BY
c.nascimento;
如果你想将它们组合在一起
Consumidor Consumidor Dependente Dependente
M 2012-08-06 F 2012-08-06
产生:
SELECT group_concat(c.sexo,"|",d.sexo) as "sexo",
group_concat(TIMESTAMPDIFF(YEAR,c.nascimento,CURDATE())
,"|"
,TIMESTAMPDIFF(YEAR,d.nascimento,CURDATE())) as "idade"
FROM
Consumidor c JOIN Dependente d ON c.numero = d.consumidor
ORDER BY
c.nascimento;