繁体   English   中英

根据日期/日期范围连接不同的SQL表

[英]Joining different SQL tables based on dates/date range

我试图找出是否有可能基于日期联接SQL表。 因此,这并不是而且仅当日期完全一致时,但我想知道是否有可能根据一个表中的日期是否适合另一个表中的日期范围来链接表。 因此可能看起来像这样:

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

这可能吗?

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

对于您的示例,查询可能看起来像这样:

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

我没有看到任何约束阻止任何连接条件。 我很快在HSQL中创建并对其进行了测试

创建表PUBLIC.TBLX1(ID INTEGER NOT NULL,COUNTRY VARCHAR(25),CODE VARCHAR(25),CONTINET VARCHAR(25),CREATED DATE,UPDATED DATE,PRIMARY KEY(ID));

创建表PUBLIC.TBLX2(ID INTEGER NOT NULL,COUNTRY VARCHAR(25),CODE VARCHAR(25),CONTINET VARCHAR(25),CREATED DATE,UPDATED DATE,PRIMARY KEY(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

而且效果很好。

开启后的所有内容都必须为有效条件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM