如果您只想尽可能有效地判断表是否相同,请使用以下查询:
SELECT 1 FROM (
SELECT * FROM table1
UNION ALL
SELECT * FROM table2
) t
GROUP BY col1, col2, col3
HAVING count(*) = 1
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
列出所有列GROUP BY以比较整个表。
如果结果是空集,则两个表是相同的。
如果要查看差异,请使用以下查询:
SELECT * FROM (
SELECT 'table1' tname, col1, col2, col3 FROM table1
UNION ALL
SELECT 'table2' tname, col1, col2, col3 FROM table2
) t
GROUP BY col1, col2, col3
HAVING count(*) = 1
Run Code Online (Sandbox Code Playgroud)
SELECT作为GROUP BY,加上列来区分两个表。