首页 > 解决方案 > 连接 SQL Server 中的表并报告主表中的缺失数据

问题描述

我有 4 个表,我想对主表中不存在的所有数据进行分组。

例如,我有以下 4 个表:

Table_A – 3000 行:

在此处输入图像描述

Table_B – 200 行:

在此处输入图像描述

Table_C – 150 行:

在此处输入图像描述

Table_D – 800 行:

在此处输入图像描述

我想查看 Table_A 中不存在的所有用户并将它们组合到一个表中(示例如下所示):

在此处输入图像描述

我有这个查询,但我没有得到上面想要的结果。你能告诉我哪里出错了吗?

SELECT *
FROM Table_A A
RIGHT OUTER JOIN Table_B B ON A.Phone_Number = B.Phone_Number
RIGHT OUTER JOIN Table_C C ON A.Phone_Number = C.Phone_Number
RIGHT OUTER JOIN Table_C D ON A.Phone_Number = D.Phone_Number
WHERE A.ID IS NULL

标签: sqlsql-servertsqljoindatabase-design

解决方案


你可以这样做。我可以看到您将如何通过水平显示数据获得更多知识,这使得以后很难使用:

Select * from 
(
  select [Employee Name], Phone_Number From table_B
  union
  select [Employee Name], Phone_Number From table_C
  union
  select [Employee Name], Phone_Number From table_D

)
 T
where not exists
(select 1 from Table_A a where a.Phone_Number  = T.Phone_Number )

推荐阅读