You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写tblVisitor与tblCard关联的范围匹配SQL ON子句?

解决SQL关联条件问题

你需要的关联条件可以直接通过范围匹配实现,不需要逐个写CASE WHEN,具体语法如下:

完整SQL语句

select V.Card_Id,V.Visitor_Name,C.Card_Name 
from tblVisitor V 
join tblCard C on V.Card_Id BETWEEN C.Start_Id AND C.End_Id

或者等价的写法(效果完全一致):

select V.Card_Id,V.Visitor_Name,C.Card_Name 
from tblVisitor V 
join tblCard C on V.Card_Id >= C.Start_Id AND V.Card_Id <= C.End_Id

原理说明

tblCard中的记录定义了不重叠的连续ID区间,每个tblVisitor.Card_Id必然落在且仅落在一个区间内,因此用BETWEEN(或直接的大小比较)就能精准匹配到对应的Card_Name,比CASE WHEN更简洁高效。

执行结果

执行上述SQL后会得到如下结果:

Card_IdVisitor_NameCard_Name
23PersonAEngineer
53PersonBHelper
101PersonCEmployeer

内容的提问来源于stack exchange,提问作者Kalendar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 16:55:00