SQLのJOIN文を視覚的に理解する
- January 7th, 2011
- Posted in 開発ツール・技術
- Write comment
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
図だとこんな感じ。

次に重複部分はひとつだけにして、あと全部。
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
図だとこんな感じね。

左側だけいっときます。
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
図でいうとこんな感じ。

これは図にできないのですが、重複しているものも含めて全部とってくる命令です。
SELECT * FROM TableA CROSS JOIN TableB
いかがですかね。JOIN文を書くときには参考にしてみたいですね。なお、サンプルデータで抽出結果がどうなるかを知りたい方は元サイトをどうぞ。
» Coding Horror: A Visual Explanation of SQL Joins


No comments yet.