たとえば、次の 2 つのテーブルがあるとします。
表1:
Id
----
1
2
表 2:
Month
------
Jan
Feb
そして、SQL クエリを使用してそれらを結合し、次の出力を形成したいと考えています。
Id Month
---- -------
1 Jan
1 Feb
2 Jan
2 Feb
単一のクエリを使用してこれを行う方法はありますか?
これはデカルト積と呼ばれ、結合条件を指定しない場合に発生します。でも気をつけて!
SELECT ids.Id, months.Month
FROM ids, months
正解は「交差結合」です。
select *
from t1 cross join j2
クロス結合には "on" 句はありません。コンマを使用するだけで同じことを行うことができますが、これは古い (そしていつか非推奨になることを願っています) SQL 構文です。クロス結合は正しい方法です。
この2つのテーブル間で外部結合を行う必要があります