mysql:使用join连接时,数据中有重复数据返回的结果 |
您所在的位置:网站首页 › 多个重复值只保留一个其他到新表 › mysql:使用join连接时,数据中有重复数据返回的结果 |
在mysql中,连接的函数有:inner join,left join,right join等等。 其中,inner join就是返回两个表连接的交集。即:只有当两个表都存在的数据才会被返回。为了测试其中一个表存在重复数据时inner join返回的结果,创建两个表格:demo1(上),demo2(下)
将demo1与demo2通过class进行内连接,并返回结果:
从结果中可以看出,由于class98在两个表中都同时出现了,因此class98的数据就会被返回。又由于在demo1中class98的数据由两条(即小明与小红),而在demo2中class98的数据只有一条(即小明) ,而mysql中的处理方式是将demo1中class98的每一条数据都与demo2中class98进行连接并返回。(其中clss99中的重复数据也是一样的道理) 当使用left join进行连接时,将左表的数据全部保留,右表与左表相同的数据保留,左表拥有而右表不拥有的数据用null进行填充。而left join处理重复数据返回的结果如下: SELECT * FROM data.demo1 as d1 left join data.demo2 as d2 on d1.class=d2.class
从结果中可以看出,左表的数据全部保留,并且class97作为demo1独有而demo2没有的数据以null进行填充;而在demo1重复出现两次的class98数据与demo2中出现一次的class98数据也都进行了一次连接。 总结:无论是使用inner join还是left join进行连接时,遇到重复数据时(两个表中都必须同时拥有该数据,只是在一个表或者两个表中重复出现)都是将其一一匹配才返回结果。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |