所以我列出了从表1中获得的人员。
SELECT UA.user FROM UserAcct UA
我需要检查另一个表,以确保用户未在表2中列出。
LEFT OUTER JOIN AccountsLog AL ON AL.user = UA.user
最终我要做的是确保表1中的人员已对表2执行了操作,否则将返回其名称。执行此操作将导致其名称显示在表2中。非常感谢此处的任何帮助。如果这些信息不够充分,我很乐意再详细说明。谢谢!
答案 0 :(得分:2)
当您执行左外连接以查找表A中不在表B中的记录时,只需查找NULL。
因此当您在ON AL.user = UA.user上LEFT OUTER JOIN表时,您可以找到包含以下子句的缺失记录:
WHERE AL.user IS NULL
答案 1 :(得分:1)
因此,如果我理解正确,您需要User
中AccountsLog
中不存在的任何内容,我认为您已走上正轨
SELECT UA.user FROM UserAcct UA
LEFT OUTER JOIN AccountsLog AL ON UA.user = AL.user
WHER AL.User is null -- this will give you anything that is on user and not in accountslog
此致
答案 2 :(得分:0)
这将仅为用户提供UA而非AL
SELECT UA.user FROM UserAcct UA
MINUS
SELECT AL.user FROM AccountsLog AL
编辑: - 对于SQL Server,使用EXCEPT而不是MINUS(由Oracle支持)
答案 3 :(得分:0)
如果您的SQL版本支持它,请尝试使用Not Exists。 Subqueries with NOT EXISTS。我发现它比“左外连接和过滤空值”更快。