Visual explanation of MySQL joins: Difference between revisions

Jump to navigation Jump to search
m
Line 4: Line 4:
# 狀況 1-1: 以 a 資料為主,再把 b 資料黏上: LEFT JOIN  
# 狀況 1-1: 以 a 資料為主,再把 b 資料黏上: LEFT JOIN  
#* 如果 a 資料有,但是 b 資料沒有。 b 欄位顯示 null
#* 如果 a 資料有,但是 b 資料沒有。 b 欄位顯示 null
# 狀況 2: 交集的資料,同時存在於 a 和 b: INNER JOIN
# 狀況 2: 交集 (set intersection) 的資料,同時存在於 a 和 b: INNER JOIN
#* 如果 a 資料有,但是 b 資料沒有。 不會顯示
#* 如果 a 資料有,但是 b 資料沒有。 不會顯示
# 狀況 3-1: 相對差集的資料,存在於 a,但是不存在於 b: LEFT JOIN 並且加上 b 資料 id 欄位值是 null 做查詢
# 狀況 3-1: 相對差集 (set difference) 的資料,存在於 a,但是不存在於 b: LEFT JOIN 並且加上 b 資料 id 欄位值是 null 做查詢
# 狀況 4: 聯集的資料,a 和 b 的所有資料
# 狀況 4: 聯集 (set union) 的資料,a 和 b 的所有資料
#* 如果 a 資料有,但是 b 資料沒有。 b 欄位顯示 null
#* 如果 a 資料有,但是 b 資料沒有。 b 欄位顯示 null
# 狀況 5: 對稱差的資料,只存在於 a 或 b 其中一個
# 狀況 5: 對稱差集 (set symmetric difference) 的資料,只存在於 a 或 b 其中一個


== 準備測試資料 ==
== 準備測試資料 ==

Navigation menu