我正在试图弄清楚是否可以根据日期加入SQL表。因此,并不仅仅是因为日期将完全重合,而是我想知道是否可以根据一个表中的日期是否适合另一个表中的日期范围来链接表。所以它可能看起来像这样:
Table1.StartDate Table1.EndDate Table2Date
January 1, 2000 January 3, 2000, January 3, 2000
January 3, 2000 January 5, 2000, January 4, 2000
这可能吗?
答案 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之后的任何事情都需要是有效的条件