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执行的结果。