PostgreSQL:如何在日期之间连接两个表?

fLe*_*Len 1 sql postgresql

我真的不知道怎么问我这个问题。

我将使用我需要加入的两个表来说明它。

表格1

Name    Date
John    01-01-2016
May     04-08-2015
Rose    10-25-2016
Mary    12-15-2015
Ruby    07-07-2017
Run Code Online (Sandbox Code Playgroud)

TABLE_2

Signatory       DateFrom    DateTo
President 1     01-01-2015  12-31-2015
President 2     01-01-2016  12-31-2016
Run Code Online (Sandbox Code Playgroud)

结果:

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
Run Code Online (Sandbox Code Playgroud)

所有我需要检查日期TABLE_1是内DateFromDateTo TABLE_2的拿到签字领域。

我怎么能做到这一点?

非常感谢!^_^

Gio*_*sos 5

尝试这个:

SELECT t1.*, t2.Signatory
FROM Table_1 AS t1
LEFT JOIN Table_2 AS t2 
   ON t1."Date" BETWEEN t2.DateFrom AND t2.DateTo
Run Code Online (Sandbox Code Playgroud)

你需要的仅仅是一个LEFT JOINBETWEENON为了子句确定是否Date领域Table_1跌倒内任何[DateFrom, DateTo]间隔Table_2

演示在这里