代码改变世界

sql left join/inner join 的重新认识

2017-08-18 19:26  落寞的流月城  阅读(266)  评论(0编辑  收藏  举报

额。太久没接触了,想不到今天栽在left join身上了。。。以前一直以为懂了,后面很久没用,慢慢就荒废了这东西了。。哎!

直接举例子:select * from a left join b

记住,left join 是无条件关联把 a的内容全部选出来,然后再跟b关联,也就是说,a先查出来,在通过on来筛选出b的内容来关联

例如:select * from a left join b on a.id='1'  ——这个其实on的内容筛选中,b其实是没有选出数据的,但是因为是left inner,结果是找出所有a内容,b内容为空,如果a有一条数据,b有3条数据,那么会“或”操作。总结来说——左边要有,右边你随意有没有

例如:select * from a inner join b on a.id='1'    ——这个inner join 其实也是把a先全部筛选出来,但是要跟on上面的条件过滤出的b 做并操作——左右都有