LoginSignup
0
1

More than 3 years have passed since last update.

SQLのクロス結合

Posted at

前回、クロス結合について記載するのを忘れてしまっていたので補足しておきます。
そんなに頻繁に使うような結合ではないのですが、ちょっとややこしいので一応。

まず、下記のように科目テーブルと成績テーブルを用意します。

name
国語
算数
英語
result
合格
不合格

これをCROSS JOINを使ってクロス結合すると、下記のようになります。
例:SELECT * FROM 科目テーブル CROSS JOIN 成績テーブル;

name result
国語 合格
国語 不合格
算数 合格
算数 不合格
英語 合格
英語 不合格

このように、科目テーブルと成績テーブルのすべての組み合わせが出力されます。
また、クロス結合を応用すると、順列と組み合わせを取得することが出来ます。
例:SELECT * FROM 科目テーブル T1 CROSS JOIN 科目テーブル T2 WHERE T1.name <> T2.name;

name name
国語 算数
国語 英語
算数 国語
算数 英語
英語 国語
英語 算数

例:SELECT * FROM 科目テーブル T1 CROSS JOIN 科目テーブル T2 WHERE T1.name < T2.name;

name name
国語 算数
国語 英語
算数 英語
0
1
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
0
1