什麼時候使用left join?


首先我們來看下面的sql代碼。我們思考一個問題:如果簡單按照如下方法找的話有個問題:那就是b表中的任一行在b中沒有對應的aid的時候,那行的數據就讀不出來,爲了解決這樣的問題。

SELECT
    a.id,
    b.id
FROM
    a,b
where(a.id = b.aid)

可以使用left join,用法如下:

SELECT
    a.id,
    b.id
FROM
    a
LEFT JOIN b
ON(a.id = b.aid)

使用場景:A表跟B表的關係是1對0...*,因爲B表中有可能沒有A表對應的外鍵,所以會導致A表中的某些數據無法讀取。

例子:表A是用戶表,表B是評價表。假如我們想要 知道某個用戶的所有評論的時候,我們就要使用left join。如下:

select a.id,a.user_name,b.comment
from a left join b
on a.id = b.user_id and a.user_id = 3

這樣,即使id爲3的用戶沒有評論,我們也能得到id爲3的用戶的名字。提醒:那樣的話得到的b.comment的值爲null。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章