left join多个表

A left join b on a.id=b.id
系统会先做个笛卡儿积,然后以表A为基表,去掉笛卡儿积中表A部分为NULL的记录。

对于多个表,也可以用类似的方法:

SELECT
    sii.tcCode,sii.tcName,spr.*,spe.*
FROM
    A sii
    left join B spr on sii.tcCode=spr.tcCode
    left join C spe on spr.promotId = spe.promotId

这里要注意,不是一直使用A作为基表。实际上,从执行的结果,可以看到是以第一次left join 的结果进行后面一次的left join的。

如果后面使用 join,那么整个sql的执行结果将是全部用join执行的结果。
         
 

   

   

猜你喜欢

转载自zengshaotao.iteye.com/blog/1879332