如何连接两个没有重复的表?

时间:2016-05-09 11:37:34

标签: php mysql sql

我的表格看起来像这样:

id_in  | date_in   
-------|--------------------------
1      | 2016-04-29 02:00:00

一张看起来像这样的表:

id_out    |  date_out
----------|--------------------------
1         | 2016-04-29 03:00:00
2         | 2016-04-29 04:00:00
3         | 2016-04-29 05:00:00

我想编写一个输出如下的查询:

id_in | date_in                     | id_out                     | date_out
------|---------------------------- |----------------------------|---------------------------
1     | 2016-04-29 02:00:00         | 1                          |2016-04-29 03:00:00
NULL  |  NULL                       | 2                          |2016-04-29 04:00:00
NULL  |  NULL                       | 3                          |2016-04-29 05:00:00

5 个答案:

答案 0 :(得分:9)

您可以使用left join

执行此操作
select i.id_in, i.date_in, o.id_out, o.date_out
from outtable o left join
     intable i
     on o.id_in = i.id_out;

答案 1 :(得分:1)

或者您可以使用right join

执行此操作
select i.id_in, i.date_in, o.id_out, o.date_out
from intable i right join
     outtable o
     on o.id_in = i.id_out;

答案 2 :(得分:0)

我们使用id_in'table_in'和带有id_out'table_out'的表格调用该表格

您希望加入 table_in到table_out。在这种情况下,您希望在id字段上左连接 table_in到table_out。这将确保您从table_out返回所有记录,无论它们是否在table_in中有相应的记录:

select table_in.id_in, table_in.date_in, table_out.id_out, table_out.date_out
from table_out
left join table_in
on table_out.id_out = table_in.id_in

(或者,您可以table_in right join table out获得相同的结果)

如果您希望所有来自两个表的记录,而不管另一个中是否有相应的记录,则应使用full join

答案 3 :(得分:0)

简单你可以试试这个

select * from table_id i right join table_out o on i.id_in = o.id_out

答案 4 :(得分:0)

此查询结果与您的需求相同..

{{1}}