left join 或right join 加上where条件后连接失效,等同于inner join

原因:where是先连接然后再筛选 

举例:

表1:  


表2:


查询语句:select * from tab1 left JOIN tab2  on (tab2.id=tab1.id) where tab2.hobby = "游泳";

结果:


过程:

先生成中间表:


再where 条件过滤。     所以left join 失效。

解决办法:将where 换成and 即:

查询语句:select * from tab1 left join tab2 on (tab2.id=tab1.id) and  (tab2.hobby='游泳');


展开阅读全文

没有更多推荐了,返回首页