标签:
举个例子两个表主表为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表信息
,所得到的两个一样的数据其中包含的意义其实是不一样的。
标签:
原文地址:http://www.cnblogs.com/moon1223/p/5929215.html