【SQL】複数キーで結合(JOIN)する方法!

JOINを複数キーで行う

テーブルをJOINするときに、キーが複数発生することもあると思います。
そんなとき、どうやってキーを複数選択するでしょうか。

複数キーでJOIN

SELECT
    *
FROM
    table_a as A
JOIN
    table_b as B
ON
    A.key = B.key
AND
    A.key2 = B.key2

複数キーを用いる場合は、ANDのあとにJOINキーを記載します。

具体例

複数キーを用いてJOINする具体例を確認しましょう。

以下のようなテーブルが2つ存在したとします。

テーブル①

名前 学年 クラス
田中 1 A
鈴木 2 A
山田 1 B
小林 2 B

テーブル②

教科 学年 クラス
数学 1 A
体育 2 A
国語 1 B
社会 2 B

あんまりイケているテーブルではないですが、
ともあれ、JOINして名前と教科を紐づけたいと思います。

結合クエリ

SELECT
    名前,
    教科
FROM
    tableas 1
JOIN
    tableas 2
ON
    1.学年 = 2.学年
AND 
    1.クラス = 2.クラス

結果

名前 教科
田中 数学
鈴木 体育
山田 国語
小林 社会

このように複数キーを用いることで、
名前と教科の紐づけができました。