设计查询以显示不相等的行

问题描述 投票:0回答:1

我有2张桌子

表1:

enter image description here

表2:

enter image description here

我希望我的查询以这种格式显示两个表之间不常见的所有行:

预期结果:

enter image description here

任何想法将不胜感激!我曾尝试按照建议的方式使用UNION,但没有得到我想要的结果。

sql ms-access ms-access-2016
1个回答
0
投票

我无法在1个查询中执行此操作,但是我可以在两个查询中执行此操作!

首先,创建一个联合查询,将表1中未出现在表2中的项目与表2中未出现在表1中的项目合并在一起。您的SQL应该看起来像:

SELECT T2.ID
FROM Table2 T2 LEFT JOIN Table1 T1 ON T2.[ID] = T1.[ID]
WHERE (((T1.ID) Is Null))
UNION SELECT T1.ID
FROM Table1 T1 LEFT JOIN Table2 T2 ON T1.[ID] = T2.[ID]
WHERE (((T2.ID) Is Null));

然后您的第二个查询基于此查询,并连接到表1和表2,显示查询中的所有记录以及这些表中ID匹配的所有记录。您的SQL应该看起来像这样:

SELECT Q3.ID, T1.holiday, T2.Holiday
FROM Table2 T2 RIGHT JOIN (Table1 T1 RIGHT JOIN Query3 Q3 ON T1.ID = Q3.ID) ON T2.ID = Q3.ID;

我假设在预期输出中显示的ID1是一个错误,因为它同时出现在两个表中。

问候,

© www.soinside.com 2019 - 2024. All rights reserved.