とりあえず、本当に基本的な説明はおいて置いて、
ちょっとどうだった?
の時に、簡単に構文が分かるように説明できれば・・・・とりあえず、主に「データ操作コマンド」
がこのページの趣旨となります。
基本は、マイクロソフトデーターベース、SQLserver 例は「Northwind(サンプルデータベース)」となります。
- INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN
-
二つのテーブルを、結合して、検索する場合に使用する。
-
INNER JOIN
等結合。
下の例だと、Productsテーブルの全ての行が出力される様にコメントの絵は書かれているが、
dbo.Categories INNER JOIN dbo.Products
ON dbo.Categories.CategoryID = dbo.Products.CategoryID
の条件となっているように、dbo.Products.CategoryIDにあるものが、Categories.CategoryIDに無かった場合、
その行は出力されない。
つまり、等結合は整合性がきちっと取れている時に有効な抽出方法となる。
-
RIGHT JOIN
右側にあるテーブルから、全行持ってくる。
条件を見てみると、
dbo.Categories RIGHT OUTER JOIN dbo.Products
ON dbo.Categories.CategoryID = dbo.Products.CategoryID
とあるように、右側dbo.Productsから全行持ってきている。
下の図を見ると、「テストで追加」したものが出力されている。
-
LEFT JOIN
左側にあるテーブルから、全行持って来る。
上の、RIGHT JOINとは逆になるだけ。
なので、割愛。
-
FULL OUTER JOIN
左右のテーブル全てとにかく持ってくる。
抽出漏れが無いといえば無い抽出方法となる。
dbo.Categories FULL OUTER JOIN dbo.Products
ON dbo.Categories.CategoryID = dbo.Products.CategoryID