用过很多次left join,right join,看到查询出的结果,知道可能是没用left join、或者right join导致的结果,但都是用一次,网上查一次使用规则,学到的东西只是皮毛。今天用文字记录一下,加深印象,知根知底才能学的好。
在我们查一个表的时候
比如:
人员信息表:
|
|
|||
|
|
|
||
|
|
|
||
|
|
|
||
职务信息表:
|
经理 |
这里有两张表,我希望查询的结果是得到各人员表的职位信息我职位名称,没有对应职位的不查出来。以上就是需求,接下来是查的结果。
当两张表的的联合查询时,where条件是职务id相等,这里查出来的结果就会往往会超过我们的预期结果!
人员信息表中有些职务id是职务信息表中职务id没有的,所以会有出现职务为空的数据,但我们只需要职务为1、2两个职务的数据,所以,这个时候,我们就得以职务表为基准表,left join人员信息表,这样才能是以职务信息表为准的数据
总结:
当两个或者两个以上的表联合查询时,如果两个表的数据不能一一对应,那么,我们只能以某个表为基准表,进行left join、或者right join,以基准表里有的数据为准