Sql 如何根据两个日期列将一个表连接到另一个表?
我有两张桌子 T1: T2: 我想匹配两个表格,以便在客户使用礼品卡时显示其每一层 例如,当用户使用带有“165491839”的礼品卡时,他处于第1层 或者在giftcardd='167026357'时,层为4 我找不到如何根据这个来匹配表格Sql 如何根据两个日期列将一个表连接到另一个表?,sql,sql-server,Sql,Sql Server,我有两张桌子 T1: T2: 我想匹配两个表格,以便在客户使用礼品卡时显示其每一层 例如,当用户使用带有“165491839”的礼品卡时,他处于第1层 或者在giftcardd='167026357'时,层为4 我找不到如何根据这个来匹配表格 我等待你的帮助……只要使用加入即可: select t2.*, t1.tier from table2 t2 left join table1 t1 on t2.userid = t1.userid and t2.use
我等待你的帮助……只要使用
加入即可:
select t2.*, t1.tier
from table2 t2 left join
table1 t1
on t2.userid = t1.userid and
t2.usedate >= t1.begindate and
t2.userdate < t1.enddate;
选择t2.*,t1.tier
从表2中t2左连接
表1 t1
在t2.userid=t1.userid和
t2.usedate>=t1.begindate和
t2.userdate
这是一个左连接
,因此,如果由于某种原因,日期不匹配,则不会丢失行
UserID GiftCardID UseDate OrderID IsUsed
8278020 165491838 2019-03-06 23057796 1
8278020 165491839 2019-03-10 23106429 1
8278020 165491840 2019-03-24 23277217 1
8278020 166418161 NULL NULL 0
8278020 166418162 NULL NULL 0
8278020 167026357 2019-04-22 23594414 1
8278020 167026358 2019-04-28 23668492 1
select t2.*, t1.tier
from table2 t2 left join
table1 t1
on t2.userid = t1.userid and
t2.usedate >= t1.begindate and
t2.userdate < t1.enddate;