提问人:Soumya Mannava 提问时间:11/16/2023 更新时间:11/16/2023 访问量:44
“比较两个表之间的MySQL中的行
"Comparing Rows in MySQL between two tables
问:
“我有两张桌子,'公告'和'temp_announcement'。“announcement”表包含 15 行,而“temp_announcement”表包含 21 行。我需要比较这两个表之间的行并确定差异。由于“公告”表有 15 行,而“temp_announcement”表有 21 行,因此我想打印“temp_announcement”表中存在的另外 6 行。
“我尝试使用EXCEPT运算符来比较表,但遇到了错误。查询未提供预期结果。关于如何正确使用EXCEPT 或替代方法的任何见解或更正将不胜感激。
“如何比较两个表以找到不同的行?” “我可以使用什么 SQL 查询来实现此结果?” “有没有有效的方法可以识别MySQL中两个表之间的不匹配行?”
答:
0赞
Akina
11/16/2023
#1
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;
如果你只需要单侧差值,那么
SELECT column
FROM table1
WHERE NOT EXISTS ( SELECT NULL
FROM table2
WHERE table1.column = table2.column );
下一个:将弹性数据插入 Mysql
评论