一、多層嵌套關聯的聯結使用示例
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
二、多個left join 執行順序
在實際工作中,很多情況下會用到外連接,尤其是做主頁面的數據展示查詢時效果器連接順序in,連續用到多個left join會很常見,這樣的多個left join會怎么樣執行呢
SELECT
*
FROM a
LEFT JOIN b ON a.id=b.id

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

FROM a
LEFT JOIN b ON a.id=b.id
INNER JOIN c ON b.id=c.id
結果:因為連接是從左到右的順序執行的效果器連接順序in,left join 后再inner join 這種 會導致消失left join的效果, 還是全部都left join 吧