SQLの「LEFT JOIN」やら「INNER JOIN」ってなんじゃろ?という方にとっても参考になりそうなサイトのご紹介。それぞれの命令をベン図で良い感じに表現しちゃっていますよ。とってもわかりやすいです。
Table AとTable Bが「name」というフィールドでつながっているという設定です。
- INNER JOIN
まずはINNER JOIN。共通部分だけとってきます。
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name図だとこんな感じ。
FULL OUTER JOIN 次に重複部分はひとつだけにして、あと全部。
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name図だとこんな感じね。
LEFT OUTER JOIN 左側だけいっときます。
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name図。
片方だけ 上のから共通部分だけ除きます。
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name WHERE TableB.id IS null図ね。
共通部分を除く 次に全体から共通部分を除くにはこうします。
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name WHERE TableA.id IS null OR TableB.id IS null図でいうとこんな感じ。
CROSS JOIN これは図にできないのですが、重複しているものも含めて全部とってくる命令です。
SELECT * FROM TableA CROSS JOIN TableBいかがですかね。JOIN文を書くときには参考にしてみたいですね。なお、サンプルデータで抽出結果がどうなるかを知りたい方は元サイトをどうぞ。
SQLのJOIN文を視覚的に理解する - IDEA*IDEA ~ 百式管理人のライフハックブログ
1年前 | 固定リンク | 2011年 1月 7日 | 





