繁体   English   中英

Select 两个表并排

[英]Select two tables side by side

我有两个表,里面有两个文件,其中 table1 总是比第二行多一行。

我想将两张表合并为一张。 当我使用right join时,例如

select *
from table2
right join table1 on table1.id = table2.id and table1.eq_nb = table2.eq_nb

我将有eq_nb = 25的 4 种组合,因为它重复了两次。

但我宁愿把列并排

要知道,我没有每个 eq_nb 的到达和离开时间的条件(我不能添加类似datediff(second,table1.arrival_time,table2.depart_time) < X东西)

表格1:

id | eq_nb |    arival_time
-------------------------------------
1  |  25   |    05:30:15.231
-------------------------------------
2  |  50   |    06:30:15.231
-------------------------------------
3  |  7    |    07:30:15.231
-------------------------------------
1  |  25   |    08:30:15.231
-------------------------------------
5  |  27   |    09:30:15.231   
-------------------------------------

表2:

id | eq_nb |       depart_time
----------------------------------
1  |  25   |       05:31:15.231
----------------------------------
2  |  50   |       06:31:15.231
----------------------------------
3  |  7    |       07:31:15.231
----------------------------------
1  |  25   |       08:31:15.231
----------------------------------

期望的结果:

id | eq_nb |         arrival_time    |  depart_time
-------------------------------------------------------
1  |  25   |         05:30:15.231    |   05:31:15.231
-------------------------------------------------------
2  |  50   |         06:30:15.231    |   06:31:15.231
-------------------------------------------------------
3  |  7    |         07:30:15.231    |   07:31:15.231
-------------------------------------------------------
1  |  25   |         08:30:15.231    |   08:31:15.231
--------------------------------------------------------
5  |  27   |         09:30:15.231    |       NULL
--------------------------------------------------------

left join应该做你想做的事:

select *
from table1 t1 left join
     table2 t2
     on t1.id = t2.id and t1.eq_nb = t2.eq_nb;

鉴于您的数据, id是唯一的,因此不应该有重复。 注意:这相当于你的第一个查询; left join通常更容易理解,因为第一个表中的所有行都在结果集中。

是一个 db<>fiddle,说明它是有效的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM