MySQL比较两张表数据相同、不同结果记录

编程入门 行业动态 更新时间:2024-10-28 00:17:49

MySQL比较<a href=https://www.elefans.com/category/jswz/34/1761627.html style=两张表数据相同、不同结果记录"/>

MySQL比较两张表数据相同、不同结果记录

两张表:水果设备表sb_fruit、系统设备表xt_fruit,比较两张表中相同、不同的数据结果。

自己开始尝试写的方法:

(1)设备与系统共有数据:

select sb.id,sb.name_idnumber,xt.id,xt.name_idnumber 
from sb_fruit sb,xt_fruit xt 
where sb.name_idnumber = xt.name_idnumber; 

(2)设备多出数据:

select sb.id,sb.name_idnumber 
from sb_fruit sb  
where sb.id not in 
(
select sb.id
from sb_fruit sb,xt_fruit xt 
where sb.name_idnumber = xt.name_idnumber 
);

(3)系统多出数据:

select xt.id,xt.name_idnumber 
from xt_fruit xt 
where xt.id not in 
(
select xt.id 
from sb_fruit sb,xt_fruit xt 
where sb.name_idnumber = xt.name_idnumber 
);

后学到另一种方法,比较两张表数据的不匹配记录、匹配记录。

参考网址:【MySQL比较两个表不同的数据 - MySQL教程 .html】


步骤:
    (1)首先,使用UNION语句来组合两个表中的行; 仅包需要比较的列。返回的结果集用于比较。
    (2)第二步,根据需要比较的主键和列分组记录。如果需要比较的列中的值相同,则COUNT(*)返回2,否则COUNT(*)返回1。

    

两张表中各自不同的数据:

(1)此为二者多出结果的混合数据:
select id,name_idnumber 
from 
(
select CONCAT('sb_',sb.id) id,sb.name_idnumber 
from sb_fruit sb 
UNION ALL 
select CONCAT('xt_',xt.id) id,xt.name_idnumber 
from xt_fruit xt 
) t 
GROUP BY name_idnumber 
HAVING count(*) = 1;      (2)此为单看设备多出结果:
select id,name_idnumber 
from 
(
select CONCAT('sb_',sb.id) id,sb.name_idnumber 
from sb_fruit sb 
UNION ALL 
select CONCAT('xt_',xt.id) id,xt.name_idnumber 
from xt_fruit xt 
) t 
GROUP BY name_idnumber 
HAVING count(*) = 1 
and id like '%sb_%';        (3)此为单看系统多出结果:
select id,name_idnumber 
from 
(
select CONCAT('sb_',sb.id) id,sb.name_idnumber 
from sb_fruit sb 
UNION ALL 
select CONCAT('xt_',xt.id) id,xt.name_idnumber 
from xt_fruit xt 
) t 
GROUP BY name_idnumber 
HAVING count(*) = 1     
and id like '%xt_%';        

查看两张表的相同数据:

select name_idnumber 
from 
(
select sb.name_idnumber 
from sb_fruit sb 
UNION ALL 
select xt.name_idnumber 
from xt_fruit xt 
) t 
GROUP BY name_idnumber 
HAVING count(*) = 2;

更多推荐

MySQL比较两张表数据相同、不同结果记录

本文发布于:2023-06-27 19:31:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/915954.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:两张   数据   MySQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!