如何用2个表编写此SQL查询?

时间:2014-08-01 10:05:30

标签: sql sql-server correlated-subquery

有一个名为AssociateAuditorMap的表格,其中包含3列AssociateIDAuditorIDIsActive(bool)。

每个AssociateID只有一个AuditorID映射到它。一个审核员可能有许多关联映射到它们。

第二个表名为UserMaster,其中包含2列UserIDRoleID

现在假设Auditors位于UserMaster RoledID=2,查找的查询是什么 在AssociateAuditorMap表中没有任何联系人的审计员?

也就是说,查找Auditors表中没有任何行的AssociateAuditorMap

1 个答案:

答案 0 :(得分:2)

怎么样

SELECT 
    u.UserID, u.RoleID
FROM 
    dbo.UserMaster u
WHERE
    u.RoleId = 2 
    AND NOT EXISTS (SELECT * FROM dbo.AssociateAuditorMap aam 
                    WHERE aam.AuditorID = u.UserID)

这将列出来自UserMaster的{​​{1}}(审核员)的所有行,RoleID = 2表中没有AssociateAuditorMap