【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 table① as 1 JOIN table② as 2 ON 1.学年 = 2.学年 AND 1.クラス = 2.クラス
結果
名前 | 教科 |
---|---|
田中 | 数学 |
鈴木 | 体育 |
山田 | 国語 |
小林 | 社会 |
このように複数キーを用いることで、
名前と教科の紐づけができました。