一、多層嵌套關(guān)聯(lián)的聯(lián)結(jié)使用示例
SELECT categories.* FROM categories
LEFT JOIN articles ON articles.category_id = categories.id
LEFT JOIN comments ON comments.article_id = articles.id

LEFT JOIN guests ON guests.comment_id = comments.id
LEFT JOIN tags ON tags.article_id = articles.id
二、多個(gè)left join 執(zhí)行順序
在實(shí)際工作中,很多情況下會(huì)用到外連接,尤其是做主頁(yè)面的數(shù)據(jù)展示查詢時(shí)效果器連接順序in,連續(xù)用到多個(gè)left join會(huì)很常見,這樣的多個(gè)left join會(huì)怎么樣執(zhí)行呢
SELECT
*
FROM a
LEFT JOIN b ON a.id=b.id

LEFT JOIN c ON b.id=c.id
過程是這樣的:
1, 首先表a左鏈接表b,得到一個(gè)中間臨時(shí)表,該中間臨時(shí)表包括表a的所有行以及表b中與表a匹配條件(a.id=b.id)的行
2, 該中間 臨時(shí)表左鏈接表c,得到最終的行集,該行集中包括上一步的中間臨時(shí)表的所有行以及表c中與中間臨時(shí)表匹配條件(b.id=c.id)的行
總的來說,多個(gè)JOIN就是從左至右的順序來連接
三、left join和inner join同時(shí)使用產(chǎn)生的問題
SELECT
*

FROM a
LEFT JOIN b ON a.id=b.id
INNER JOIN c ON b.id=c.id
結(jié)果:因?yàn)檫B接是從左到右的順序執(zhí)行的效果器連接順序in,left join 后再inner join 這種 會(huì)導(dǎo)致消失left join的效果, 還是全部都left join 吧