テーブルを結合することで複数のテーブルからデータを参照することができます.最も頻繁に使用する結合は等価結合(または内部結合といいます)です.等価結合とは指定した列について同じデータを持つレコード同士を結びつける結合です.指定した列のデータがどちらかにしかないレコードは抽出されません.テーブルを等価結合するにはJOIN句を使用します.
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.列名
例として売上伝票と商品マスタを商品コードをキーにして結合します.
売上明細
伝票番号 | 商品コード |
---|---|
01-101 | A001 |
01-102 | A002 |
01-103 | B002 |
01-104 | D001 |
商品
商品コード | 商品名 |
---|---|
A001 | 冷蔵庫 |
A002 | 洗濯機 |
B001 | エアコン |
B002 | 空気清浄機 |
C001 | 液晶テレビ |
SQL
SELECT 売上明細.伝票番号, 商品.商品コード, 商品.商品名
FROM 商品 JOIN 売上明細
ON 商品.商品コード = 売上明細.商品コード
結果
伝票番号 | 商品コード | 商品名 |
---|---|---|
01-101 | A001 | 冷蔵庫 |
01-102 | A002 | 洗濯機 |
01-103 | B002 | 空気清浄機 |