いつもの如く超絶自分用。
結合方式 | 詳細 |
---|---|
LEFT JOIN(LEFT OUTER JOIN) |
・JOIN左側のテーブルデータは全て表示。(WHERE句があればそれに順ずる) ・そこへ対応する右側のテーブルデータが追される。 ・対応するデータが右側のテーブルに存在しない場合、 NULLが挿入される。 |
RIGHT JOIN(RIGHT OUTER JOIN) |
・基本的にLEFT JOINの逆動作 ・JOIN右側のテーブルデータは全て表示。(WHERE句があればそれに順ずる) ・そこへ対応する左側のテーブルデータが追される。 ・対応するデータが左側のテーブルに存在しない場合、 NULLが挿入される。 |
INNER JOIN |
・指定したテーブルの双方に結びつくレコードが存在している場合のみ表示される。 ・いずれかがNULLの場合どちらも表示されない。 |
SQLとしては以下のような感じ。
SELECT * FROM sites LEFT JOIN items ON sites.id = items.site_id
上記は、サイトに対して結びつくアイテムをリレーションで管理しているような場面を想定した際の一例。
「LEFT JOIN」の部分を「RIGHT JOIN」「INNER JOIN」にすれば、上の表通りな挙動になる。