gpt4 book ai didi

mysql - 如果 2 个表具有相同的数据,我如何比较?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:55 25 4
gpt4 key购买 nike

如果我有 2 个表并且想查找它们是否具有相同的数据,在 MySQL 中最直接的方法是什么?
我读过有关执行相关子查询和 UNION ALL 的内容,但此查询大约有 2 页(!),无法真正理解它在做什么。一定有更简单的方法。
即使是例如让 MySQL 将表数据复制到文件并执行 vimdiff (我不确定这是否可能 - 是吗? - 只是大声思考)。

更新
我只对表数据而不是结构感兴趣。这是为了澄清,因为我发表了模棱两可的评论

最佳答案

如果您只想尽可能高效地判断表是否相同,请使用此查询:

SELECT 1 FROM (
SELECT * FROM table1
UNION ALL
SELECT * FROM table2
) t
GROUP BY col1, col2, col3
HAVING count(*) = 1
LIMIT 1
  • 列出 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
  • 在内部 SELECT 中列出与 GROUP BY 中相同的列,加上一列以区分两个表。

关于mysql - 如果 2 个表具有相同的数据,我如何比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17411866/

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