多个表进行左关联,从网上看基本写法是
select * from a
left join b on a.id = b.id
left join c on c.id = b.id
为什么第一个LEFT join 是a.id=b.id,这个可以理解,左关联吗,但下面的就不理解了,为什么不是b.id=c.id,或者a.id=c.id呢?我认为,第一个left join之后,已经把a表和b表关联成了一个表,然后可以继续关联下面的c表,所以条件应该是a.id=c.id了
正常就是a.id=c.id关联
其实b.id=c.id或a.id=c.id写法都是可以的,因为三个表之间可能都有关联关系,不考虑性能的情况下都可以,但是left join会影响性能,一般都是数据量小的当成主表或驱动表,然后才会出现你所谓的那种写法
不同的条件,结果会不一样,视不同的业务场景而定
a left join b,以a表为准,b表中可能会缺失一部分关联数据,此时