我有两个表,一个包含所有当前用户的USER表。下一个表称为任务并且有很多信息,其中一列是PointPerson,它与用户表中的一列相同。此列包含不再是用户的人员的条目。这是我想从SELECT语句中获取的内容。我希望任务表中的所有用户都不在用户表中。
这是我尝试的但我没有得到任何无法纠正的回复:
SELECT DISTINCT TSK.PointPerson FROM [Task] AS TSK
WHERE NOT EXISTS (
SELECT DisplayName FROM [User]
)
我做错了什么以及如何获得理想的结果?
答案 0 :(得分:7)
试试这个:
SELECT DISTINCT TSK.PointPerson FROM [Task] AS TSK
WHERE TSK.PointPerson NOT IN (
SELECT DisplayName FROM [User]
)
或者采用不同的方法:
SELECT DISTINCT TSK.PointPerson FROM [Task] AS TSK
LEFT JOIN [User] AS U ON U.DisplayName = TSK.PointPerson
WHERE U.DisplayName IS NULL
答案 1 :(得分:2)
您可以尝试这样: -
SELECT DISTINCT TSK.PointPerson
FROM [Task]
WHERE NOT EXISTS
(SELECT DisplayName
FROM User
WHERE Task.name = User.name)
或使用这样的LEFT JOIN: -
SELECT DISTINCT TSK.PointPerson
FROM Task t1
LEFT JOIN User t2 ON t2.name = t1.name
WHERE t2.name IS NULL
答案 2 :(得分:1)
另一种方法
SELECT PointPerson
FROM [Task]
EXCEPT
SELECT DisplayName
FROM [User]