Es gibt zwei Tabellen mit etwa 10.000 Zeilen. Wir müssen die Zeilen mit Unterschieden abfragen. Der aktuelle Code lautet wie folgt:
SELECT number, version
FROM
(
SELECT a.number, b.version
FROM a
UNION ALL
SELECT b.number, b.version
FROM b
) tb
GROUP BY number, version
HAVING COUNT(*) = 1
ORDER BY number
Aber hier kommt das Problem. Der obige Code kann nur verschiedene Zeilen abfragen, aber er kann nicht diejenigen in Tabelle a anzeigen, die nicht in Tabelle b sind, und diejenigen in Tabelle b, die nicht in Tabelle a sind Zeilen in der dritten Spalte anzeigen?
按楼主意思,单表中number和version是不会重复的,两张表的number和version建一个复合索引,然后执行以下sql
试试
full join ... where a is null or b is null
。比如用Postgres:结果: