首页 > 解决方案 > SQL查询从2个不同的表中获取唯一的日期范围

问题描述

我正在尝试创建一个查询以从 2 个不同的表中获取日期的位置。

表格1 :

开始日期 结束日期 地点
2020-12-06 2020-12-31 纽约

表 2:

开始日期 结束日期 地点
2021-01-06 2021-01-31 纽约

对于提供的日期,查询将首先查看表 1 并查看开始日期是否相等,如果不是则查看表 2。

标签: mysqlsqldatabase

解决方案


您可以通过联合将两个表视为一个虚拟表:

select  Location
from    (select *
         from table1
         union
         select *
         from table2) both
where `Start date` = '2021-01-06';

如果您不介意重复条件,则首先在每个表上分别应用条件,然后才进行连接,可能会提高性能:

select Location
from table1
where `Start date` = '2021-01-06';
union
select Location
from table2
where `Start date` = '2021-01-06';

推荐阅读