Sql 如何根据两个日期列将一个表连接到另一个表?

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

我有两张桌子

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.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;