gpt4 book ai didi

sql - 查找在具有相同字段的两个表之间未共享的 SQL 行

转载 作者:行者123 更新时间:2023-12-04 16:01:17 24 4
gpt4 key购买 nike

我有两个共享多行的相同字段的表。我想列出一个表中无法在另一个表中匹配的所有行。具体来说,这两个表是实验的两个不同版本,结果略有不同。一个例子是这样的:

|TableA|
--------
horse
cat
cow
table

|TableB|
--------
horse
cat
chair

我希望能够看到 TableA丢失 chair来自 TableB并且可能在 TableB 的不同查询中丢失 cowtable缺少 TableA .

我的想法是对所有字段进行某种外部联接,然后对其中包含空值的行进行排序,但这似乎很笨拙。这是要走的路还是有更优雅/有效的方法?

最佳答案

使用不在:

SELECT a.column
FROM TABLE_A a
WHERE a.column NOT IN (SELECT b.column
FROM TABLE_B b)

使用不存在:

如果您需要比较不止一列,这是一个很好的选择...
SELECT a.column
FROM TABLE_A a
WHERE NOT EXISTS(SELECT NULL
FROM TABLE_B b
WHERE b.column = a.column)

使用 LEFT JOIN/IS NULL:
   SELECT a.column
FROM TABLE_A a
LEFT JOIN TABLE_B b ON b.column = a.column
WHERE b.column IS NULL

由于表别名,您可以交换表名而不更改查询的其余部分以查看相反的行 - TABLE_B 中不在 TABLE_A 中的行。

关于sql - 查找在具有相同字段的两个表之间未共享的 SQL 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3640606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com