トップDML選択(結合) ≫ テーブルを結合する(等価結合|内部結合)

テーブルを結合する

テーブルを結合することで複数のテーブルからデータを参照することができます.最も頻繁に使用する結合は等価結合(または内部結合といいます)です.等価結合とは指定した列について同じデータを持つレコード同士を結びつける結合です.指定した列のデータがどちらかにしかないレコードは抽出されません.テーブルを等価結合するにはJOIN句を使用します.

JOIN ... ON

JOIN句を使用してテーブルを等価結合するには以下のようにSQLを書きます.なお,INNERは省略することができます.

SELECT 列名1, 列名2, ...
FROM テーブル名1 [INNER] JOIN テーブル名2
  ON テーブル名1.列名 = テーブル名2.列名
[WHERE 条件式など]

JOIN句で結合するテーブルを指定し,どの列をキーにして結合するかをON句で指定します.また,等価結合は以下のように書くこともできます.

SELECT 列名1, 列名2, ...
FROM テーブル名1, テーブル名2
WHERE テーブル名1.列名 = テーブル名2.列名

SQL サンプル

例として売上伝票と商品マスタを商品コードをキーにして結合します.

売上明細

伝票番号商品コード
01-101A001
01-102A002
01-103B002
01-104D001

商品

商品コード商品名
A001冷蔵庫
A002洗濯機
B001エアコン
B002空気清浄機
C001液晶テレビ

SQL

SELECT 売上明細.伝票番号, 商品.商品コード, 商品.商品名
FROM 商品 JOIN 売上明細
  ON 商品.商品コード = 売上明細.商品コード

結果

伝票番号商品コード商品名
01-101A001冷蔵庫
01-102A002洗濯機
01-103B002空気清浄機