我想知道如何简化这个查询,在这里(http://sqlfiddle.com/#!3/2789c/4)你有完整的例子
SELECT distinct (R.[roleId])
FROM [Role] R
LEFT JOIN [userRole] U ON R.[roleId] = U.[roleId]
WHERE R.RoleID NOT IN(
SELECT [roleId]
from [dbo].[userRole]
WHERE userId = 2)
我想获取所有未分配给特定用户的角色。我认为内部选择可以被删除。
更新 1
在您的大力帮助下,我只能使用一个SELECT
http://sqlfiddle.com/#!3/2789c/87
SELECT R.[roleID]
FROM [Role] R
LEFT JOIN [userRole] U
ON R.[roleID] = U.[roleID] AND U.userId = @userID
WHERE U.userId IS NULL