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

时间:2017-01-19 06:27:40

标签: sql postgresql

我真的不知道如何提出我的这个问题。

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

TABLE_1

Name    Date
John    01-01-2016
May     04-08-2015
Rose    10-25-2016
Mary    12-15-2015
Ruby    07-07-2017

TABLE_2

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

我需要检查 Table_1 Date 是否在Table_2的 DateFrom DateTo 内获得Signatory字段。

我怎么能这样做?

非常感谢! ^ _ ^

1 个答案:

答案 0 :(得分:3)

试试这个:

Your_Lib

您需要的只是在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] 1}} Table_2的间隔。

Demo here