TSQL:加入,当然是可能的——但是不要';我不知道怎么做
表:服务:TSQL:加入,当然是可能的——但是不要';我不知道怎么做,tsql,join,Tsql,Join,表:服务: ServiceID ServiceName 1 Cleaning 2 Painting 3 Driving 4 Cooking 表:服务成员: ServiceMemberID MemberID ServiceID 1 10 3 查询: SELECT s.ServiceName, sm.MemberID FROM Services s JOIN Ser
ServiceID ServiceName
1 Cleaning
2 Painting
3 Driving
4 Cooking
表:服务成员:
ServiceMemberID MemberID ServiceID
1 10 3
查询:
SELECT s.ServiceName, sm.MemberID
FROM Services s
JOIN ServiceMembers sm ON s.ServiceID = sm.ServiceID
WHERE sm.MemberID = 10
返回:
Driving 10
问题:
如何连接表,以便在TSQL中获得以下信息:
Cleaning NULL
Painting NULL
Driving 10
Cooking NULL
提前感谢。这应该可以做到:
SELECT s.ServiceName, sm.MemberID
FROM Services s
LEFT JOIN ServiceMembers sm ON s.ServiceID = sm.ServiceID AND sm.MemberID = 10
选择s.ServiceName、sm.MemberID
来自服务商
在s.ServiceID=sm.ServiceID和sm.MemberID=10上左加入ServiceMembers sm
这就成功了。我只做了左连接,但区别在于我在WHERE子句中使用了sm.MemberID。你觉得这有什么不同吗。从服务的左连接中选择s.ServiceName,sm.MemberID s.ServiceID=sm.ServiceID,其中sm.MemberID=10。WHERE子句有效地将外部连接转换为内部连接。想想会发生什么:首先,外部联接将返回在sm.MemberID列中具有NULL值的行。然后,WARE子句从MemberID等于10的结果集中删除所有行,这将删除由于外部联接而为NULL的行。