LoginSignup
3
3

More than 5 years have passed since last update.

選択(結合:等価結合、内部結合)

Last updated at Posted at 2016-11-04

結合について

結合は基本的に 2 つのテーブルを使用しますが、3 つ以上のテーブルを同時に結合することも可能です。結合できるテーブルの数に制限はありません。
構文としては、FROM 句の後ろに JOIN 句、ON 句のセットを結合するテーブルの分だけ記述していくことで、3 つ目以降のテーブルを結合できます。

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

JOIN ... ON (INNER 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.列名

SQLサンプル

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

売上明細

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

商品

商品コード 商品名
A001 冷蔵庫
A002 洗濯機
B001 エアコン
B002 空気清浄機
C001 液晶テレビ
SELECT 売上明細.伝票番号, 商品.商品コード, 商品.商品名
FROM 商品 JOIN 売上明細
  ON 商品.商品コード = 売上明細.商品コード

結果

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3