今天有个同事问我inner join 和left join的区别,突然自己也很迷糊,所以就作了一个测试
TABLE1中有23条数据
TABLE2中有12条数据
分别用同一个条件做INNER JOIN 和LEFT JOIN检索
结果如下
inner join 检索结果8条
其中table1关联了3条数据,table2关联了8条数据。
left join 检索结果28条
其中table1关联了23条数据,table2关联了8条数据
table1中提供了20条数据,在table2中检索不到,故table2提供了null。
字段为company_cd,jimusho_cd,shozoku_cd
shozoku_cd 存在于table2中。
检索条件为company_cd,jimusho_cd
其中company_cd都一样,jimusho_cd能够inner join table2的数据为02,03,04。
table2中有3条02,3条03,2条04。
结果证明:不论Inner join还是left join都会差生笛卡尔积。
之所以用inner join 和left join这样的书写方式是为了显性的SQL更易于维护。相比较from 多table的隐性检索。
ps:不要随便跟人提笛卡尔积。。。。好多人没学过离散数学。汗。。。
阅读(426) | 评论(0) | 转发(0) |