我的表格看起来像这样:
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
答案 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}}