我有两个表,一个包含成员和表。他们的卡号和出口表,用于识别每个插座的卡号范围。我想知道会员所属的卡号是哪个商店。
会员表
MemberID Cardnumber FirstName LastName
1 123456123 John Doe
2 123456245 Sarah Smith
奥特莱斯表
OutletID OutletName StartCardNumber EndCardNumber
1 Balmain Store 123456100 123456200
2 Sydney Store 123456201 123456300
我想不出一个脚本,我可以带回以下信息而不必 首先创建一个临时表。有更简单的方法吗?
CardNumber FirstName LastName OutletName
123456123 John Doe Balmain Store
123456245 Sarah Smith Sydney Store
答案 0 :(得分:2)
这很简单。除了均等之外,你还使用不等式加入一个范围。
SELECT
M.CardNumber,
M.FirstName,
M.LastName,
O.OutletName
FROM
dbo.Members M
INNER JOIN dbo.Outlets O
ON M.CardNumber >= O.StartCardNumber
AND M.CardNumber <= O.EndCardNumber
这与M.CardNumber BETWEEN O.StartCardNumber AND O.EndCardNumber
相同,但我想使用>=
和<=
绘制您的方案的包容性端点。 BETWEEN
并不总是合适的,因为最终值通常需要<
,但在这种情况下不是。