我真的不知道该怎么问这个问题。
我将用两个需要加入的表来说明。
表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来确定ONDate字段是否在Table_1的任何[DateFrom, DateTo]间隔内。
Demo here

关于sql - PostgreSQL:如何使用两个日期之间的联接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41735155/

10-12 16:14