我真的不知道该怎么问这个问题。
我将用两个需要加入的表来说明。
表1
Name Date
John 01-01-2016
May 04-08-2015
Rose 10-25-2016
Mary 12-15-2015
Ruby 07-07-2017
表二
Signatory DateFrom DateTo
President 1 01-01-2015 12-31-2015
President 2 01-01-2016 12-31-2016
结果:
Name Date Signatory
John 01-01-2016 President 2
May 04-08-2015 President 1
Rose 10-25-2016 President 2
Mary 12-15-2015 President 1
Ruby 07-07-2017 NULL
我只需要检查表1的日期是否在表2的DateFrom和Date to内,就可以得到签名字段。
我该怎么做?
谢谢!^_^
最佳答案
试试这个:
SELECT t1.*, t2.Signatory
FROM Table_1 AS t1
LEFT JOIN Table_2 AS t2
ON t1."Date" BETWEEN t2.DateFrom AND t2.DateTo
您只需要在
LEFT JOIN
子句中使用BETWEEN
来确定ON
的Date
字段是否在Table_1
的任何[DateFrom, DateTo]
间隔内。Demo here
关于sql - PostgreSQL:如何使用两个日期之间的联接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41735155/