SQL查询条件,用于选择特定表上的特定记录

时间:2016-07-10 02:48:54

标签: sql sql-server database

我有三张桌子

Users ( ID - Name )
Services (ID - Name)
UserServices ( ID - USerID- ServiceID )

我想选择不属于用户的serviceName

例如: 如果我有三个用户和10个服务

第一个用户属于3个服务,所以我只想选择其他7个服务

2 个答案:

答案 0 :(得分:1)

SELECT S.ID, S.Name
FROM Services AS S 
LEFT JOIN UserServices AS US
ON US.ServiceID = S.ID
AND US.UserID = @UserID
WHERE US.ServiceID IS NULL

因此,选择该用户ID没有匹配UserServices的服务。我还将您的US.ID更改为US.UserID,如果US.ID确实包含您的UserID,则将其更改回来。

答案 1 :(得分:0)

有很多方法可以得到你想要的结果,这是一个:

SELECT S.ID, S.Name
FROM  UserServices AS US
INNER JOIN Services AS S ON US.ServiceID = S.ID
WHERE US.UserID <> @UserID