比较 SQL 表以查找数据差异
确保两个 SQL Server 表之间的数据一致性需要标识每个表唯一的行。 这突出了差异和缺失的数据。 以下是如何使用 SQL 查询来完成此操作:
一种方法使用 EXCEPT
运算符:
(SELECT * FROM table1 EXCEPT SELECT * FROM table2)
此查询显示 table1
中存在但 table2
中不存在的行。要查找 table2
特有的行,只需交换表名称:
(SELECT * FROM table2 EXCEPT SELECT * FROM table1)
要获得两个表中所有唯一行的组合视图,请使用 UNION ALL
:
<code class="language-sql">(SELECT * FROM table1 EXCEPT SELECT * FROM table2) UNION ALL (SELECT * FROM table2 EXCEPT SELECT * FROM table1)</code>
如果您的表缺少 NULL 值,更有效的方法是使用 NOT EXISTS
。此示例检索 table1
中未在 table2
:
<code class="language-sql">SELECT * FROM table1 WHERE NOT EXISTS ( SELECT * FROM table2 WHERE table2.column1 = table1.column1 )</code>
请记住将 table1
、table2
和 column1
替换为您实际的表和列名称。 选择最适合您的数据和需求的方法。
以上是如何识别两个 SQL 表之间的差异?的详细内容。更多信息请关注PHP中文网其他相关文章!