trdsql CROSS JOIN
Posted on:
CROSS JOINは、総当りを簡単に作り出せる方法です。
a.csv
b.csv
の2つのCSVをCROSS JOINすると 3×3で全ての組み合わせを出力できます。
また一つのファイルに対して自己結合をすることもできます。 例えば、ホーム&アウェーの総当り表を作成してみます。
cleague.csv
単純にCROSS JOINするには以下のようになります(JOIN条件は無いので書けません)。
自分のチームとは対戦出来ないので、同じチームのときをWHERE h.team != a.teamにより除外します。
| home | aware |
|---|---|
| 巨人 | DeNA |
| 巨人 | 阪神 |
| 巨人 | 広島 |
| 巨人 | 中日 |
| 巨人 | ヤクルト |
| DeNA | 巨人 |
| DeNA | 阪神 |
| DeNA | 広島 |
| DeNA | 中日 |
| DeNA | ヤクルト |
| 阪神 | 巨人 |
| 阪神 | DeNA |
| 阪神 | 広島 |
| 阪神 | 中日 |
| 阪神 | ヤクルト |
| 広島 | 巨人 |
| 広島 | DeNA |
| 広島 | 阪神 |
| 広島 | 中日 |
| 広島 | ヤクルト |
| 中日 | 巨人 |
| 中日 | DeNA |
| 中日 | 阪神 |
| 中日 | 広島 |
| 中日 | ヤクルト |
| ヤクルト | 巨人 |
| ヤクルト | DeNA |
| ヤクルト | 阪神 |
| ヤクルト | 広島 |
| ヤクルト | 中日 |