从两个表中选择相同的元素

时间:2017-12-07 23:09:08

标签: mysql sql select

我有两张桌子:

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

两个表只有两列。

1 个答案:

答案 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;