by shigemk2

当面は技術的なことしか書かない

外部結合

外部結合(LEFT JOIN,RIGHT JOIN) - bnote

LEFT JOIN

FROM句に指定したテーブルの行はすべて表示し、
JOIN句の表は、一致した行を表示する。
ONでイコールした列を利用してJOINしたテーブルを表示している。

SELECT 列名,[列名,・・・]
FROM 表1
LEFT JOIN 表2
ON 表1.列 = 表2.列;

RIGHT JOIN

JOIN句に指定したテーブルの行はすべて表示し、
FROM句の表は一致した行を表示する。
ONでイコールした列を利用してFROMのテーブルを表示している。

SELECT 列名,[列名,・・・]
FROM 表1
RIGHT JOIN 表2
ON 表1.列 = 表2.列;

例を見ると、
こんな感じのテーブルがあったとします。

hoge1

user_id type name
1 MH engagesr1
2 MH engagesr2
3 HM ATOLLV
4 MH engagesr4

hoge2

id custom_id name
1 4 delta
2 6 zeta
3 9 iota
4 13 nu
5 14 xi

mysql> select * from hoge1 right join hoge2 on hoge1.user_id = hoge2.custom_id where 1 = 1 LIMIT 1;

user_id type name id custom_id name
4 MH engagesr4 1 4 delta