gpt4 book ai didi

mysql - 我需要比较 MySql 中的 2 个表并显示差异

转载 作者:行者123 更新时间:2023-11-29 18:29:54 25 4
gpt4 key购买 nike

表 table_a 和 table_b 必须使用两个表中都存在的employee_id 列进行比较。两个表都有 MILLIONS 行。必须显示 3 个结果-

  1. employee_id 存在于 table_a 中,但不存在于 table_b 中。
  2. 反之亦然。
  3. 可能会出现这样的情况:两个表中都存在特定的employee_id,但两个表中该employee_id 其他列中的数据可能不同。这些行还必须显示出存在数据不匹配的列。

由于两个表中都有数百万行,因此该过程必须很快,以便可以快速比较两个表。我正在使用 MySQL 服务器来编写查询。

最佳答案

这相当棘手,但这里有一个示例,假设 employee_id 在每个表中都是唯一的:

select employee_id,
(case when max(which) = 'a' then 'A-only'
when min(which) = 'b' then 'B-only'
else 'both'
end) as which,
concat_ws(',',
(case when count(*) = 2 and not min(col1) <=> max(col1) then 'col1' end),
(case when count(*) = 2 and not min(col2) <=> max(col2) then 'col2' end)
) as differences
from ((select 'a' as which, employee_id, col1, col2
from a
) union all
(select 'b' as which, employee_id, col1, col2
from b
)
) ab
group by employee_id;

请注意,这使用了NULL安全比较运算符。

关于mysql - 我需要比较 MySql 中的 2 个表并显示差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45780391/

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