Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对照另一个表SQL检查一个表_Sql_Sql Server - Fatal编程技术网

对照另一个表SQL检查一个表

对照另一个表SQL检查一个表,sql,sql-server,Sql,Sql Server,我从表1中得到了一份人员名单 SELECT UA.user FROM UserAcct UA 我有另一个表,我需要检查,以确保用户没有列在表2中 LEFT OUTER JOIN AccountsLog AL ON AL.user = UA.user 最终,我要做的是确保表1中的人员对表2执行了操作,否则将返回他们的姓名。执行此操作将导致其名称显示在表2中。非常感谢您的帮助。如果这还不够,我很乐意尝试进一步阐述。谢谢 因此,如果我理解正确,您希望从User获得AccountsLog中不存在的任

我从表1中得到了一份人员名单

SELECT UA.user FROM UserAcct UA
我有另一个表,我需要检查,以确保用户没有列在表2中

LEFT OUTER JOIN AccountsLog AL ON AL.user = UA.user

最终,我要做的是确保表1中的人员对表2执行了操作,否则将返回他们的姓名。执行此操作将导致其名称显示在表2中。非常感谢您的帮助。如果这还不够,我很乐意尝试进一步阐述。谢谢

因此,如果我理解正确,您希望从
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

关于因此,如果我理解正确,您希望从
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

关于

当您执行左外部联接以查找表a中不在表B中的记录时,只需查找空值即可

因此,当您将OUTER JOIN表留在on AL.user=UA.user上时,您可以使用以下子句查找缺少的记录:

WHERE AL.user IS NULL

当执行左外部联接以查找表a中不在表B中的记录时,只需查找空值

因此,当您将OUTER JOIN表留在on AL.user=UA.user上时,您可以使用以下子句查找缺少的记录:

WHERE AL.user IS NULL

这将仅在UA上提供用户,而不在AL上提供用户

SELECT UA.user FROM UserAcct UA
MINUS
SELECT AL.user FROM AccountsLog AL 

编辑:-对于SQL server的使用,除了而不是减号(由Oracle支持)

这将为用户提供仅在UA上,而不在AL上的功能

SELECT UA.user FROM UserAcct UA
MINUS
SELECT AL.user FROM AccountsLog AL 

编辑:-对于SQL server,请使用除外而不是减号(Oracle支持)

如果您的SQL版本支持它,请尝试使用Not Exists。我发现它比“左外部联接和筛选空值”更快。

如果您的SQL版本支持它,请尝试使用Not Exists。我发现它比“左外部联接和筛选空值”要快。

在联接中尝试
WHERE AL.User为空
,或者在存在的位置尝试
(选择…
),那么这有什么问题?你到底想干什么?你能说清楚吗?@WEI_DBA是的,是的,我知道…:)请在您的加入中尝试
WHERE AL.User为NULL
,或者尝试
WHERE EXISTS(选择…)
那么这有什么问题?你到底想干什么?你能说清楚吗?@WEI_DBA是的,是的,我知道…:)<代码>减号是Oracle特定的运算符。在SQL标准(和SQL Server)中,除了哦,是的。。我没有看到它的sql server。然后,它应该是except,而不是减号
减号
是一个特定于Oracle的运算符。在SQL标准(和SQL Server)中,除了
哦,是的。。我没有看到它的sql server。那么它应该是除,而不是负