SQL 基本のき(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

VB Tips And Sample(HOME)(SQL 目次)

INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN
とりあえず、本当に基本的な説明はおいて置いて、
ちょっとどうだった?
の時に、簡単に構文が分かるように説明できれば・・・・とりあえず、主に「データ操作コマンド」
がこのページの趣旨となります。
基本は、マイクロソフトデーターベース、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
    フルジョイン
 

VB Tips And Sample(HOME)