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的行。