根据日期/日期范围加入不同的SQL表

时间:2015-10-14 20:21:24

标签: mysql sql

我正在试图弄清楚是否可以根据日期加入SQL表。因此,并不仅仅是因为日期将完全重合,而是我想知道是否可以根据一个表中的日期是否适合另一个表中的日期范围来链接表。所以它可能看起来像这样:

Table1.StartDate  Table1.EndDate   Table2Date
January 1, 2000   January 3, 2000, January 3, 2000
January 3, 2000   January 5, 2000, January 4, 2000

这可能吗?

2 个答案:

答案 0 :(得分:0)

是的,根据您想要使用的逻辑,您可以JOIN任何表到另一个表。

对于您的示例,查询可能如下所示:

Select  Table1.StartDate, Table1.EndDate, Table2.Date
From    Table1
Join    Table2  On  Table2.Date Between Table1.StartDate And Table1.EndDate

答案 1 :(得分:0)

我没有看到任何阻止任何连接条件的约束。我在HSQL中快速创建并测试了这个

  

CREATE TABLE PUBLIC.TBLX1(       ID INTEGER NOT NULL,       COUNTRY VARCHAR(25),       CODE VARCHAR(25),       CONTINET VARCHAR(25),       创建日期,       更新日期,       主要钥匙(ID)   );

     

CREATE TABLE PUBLIC.TBLX2(       ID INTEGER NOT NULL,       COUNTRY VARCHAR(25),       CODE VARCHAR(25),       CONTINET VARCHAR(25),       创建日期,       更新日期,       主要钥匙(ID)   );

INSERT INTO PUBLIC.TBLX2
(ID, COUNTRY, CODE, CONTINET, CREATED, UPDATED)
VALUES 
(1, 'USA', '102', 'North America', '2015-10-14', '2015-10-14');


INSERT INTO PUBLIC.TBLX1
(ID, COUNTRY, CODE, CONTINET, CREATED, UPDATED)
VALUES 
(1, 'USA', '102', 'North America', '2015-10-14', '2015-10-14');


select * from TBLX2
JOIN TBLX1 ON TBLX2.CREATED = TBLX1.CREATED

并且效果很好。

ON之后的任何事情都需要是有效的条件