“比较 MySQL 中两个表之间的行

问题描述 投票:0回答:1

“我有两个表,‘announcement’和‘temp_announcement’。 “announcement”表包含 15 行,而“temp_announcement”表包含 21 行。我需要比较这两个表之间的行并找出差异。由于“announcement”表有 15 行,而“temp_announcement”表有21 行,我想打印“temp_announcement”表中存在的额外 6 行。”

“我尝试使用 EXCEPT 运算符来比较表,但遇到了错误。查询未提供预期结果。任何有关如何正确使用 EXCEPT 或替代方法的见解或更正将不胜感激。”

“如何比较两个表以找到不同的行?” “我可以使用什么 SQL 查询来实现这个结果?” “有没有有效的方法来识别 MySQL 中两个表之间不匹配的行?”

sql mysql mysql-workbench
1个回答
0
投票
SELECT column,
       CASE SUM(tnum) WHEN 1 THEN 'In table1 only'
                      WHEN 2 THEN 'In table2 only'
                      ELSE 'Something went wrong'
                      END `In what table`
FROM (SELECT column, 1 AS tnum FROM table1
      UNION
      SELECT column, 2         FROM table2) combine
GROUP BY column
HAVING SUM(tnum) < 3;
© www.soinside.com 2019 - 2024. All rights reserved.