说说左连接出现重复记录的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了说说左连接出现重复记录的问题相关的知识,希望对你有一定的参考价值。

 举个例子两个表主表为A  从表为B

A       

aid place
1 大连
2 上海
3 北京

 

 

 

 

B

bid aid type name
1 1 学生
2 1 老师
3 2 领导
4 1 学生
5 2 老师

 

 

 

 

 

下面我想查询type为学生的A表和B表的所有信息

select * from A join B on a.aid=b.aid where B.type="学生";

得到的结果是:

技术分享

 

如果我查询type为学生的A表信息

select a.* from A join B on a.aid=b.aid where B.type="学生";

得到的结果为:

技术分享

所以!!!就是所谓的重复,

如果说你想查找type为学生的都来自于哪个place     可以直接distinct  ,例如:

select distinct a.* from A join B on a.aid=b.aid where B.type="学生";

得到的结果为:

技术分享

但是就像上文提到的如果我查询type为学生的A表信息  

技术分享,所得到的两个一样的数据其中包含的意义其实是不一样的。

 

以上是关于说说左连接出现重复记录的问题的主要内容,如果未能解决你的问题,请参考以下文章

用sql语句进行多表连接查询出现重复数据

mysql开发之join语句学习

限制在 MySQL 问题的左连接中返回的行

删除...在sqlite中的左连接查询[重复]

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

[未解决问题记录]python asyncio+aiohttp出现Exception ignored:RuntimeError('Event loop is closed')(代码片段