外部結合(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 |