私はSQL Server 2008に取り組んでおり、デカルト積とクロス結合の違いについて知りたいと思っています。誰かがコンセプトをクリアするのを手伝ってくれませんか?
クロス結合すると、デカルト積が得られます。最初のテーブルの各行は、2番目のテーブルのすべての行と一致します
この結合は、結合する条件を必要としないデカルト結合です。結果セットには、両方のテーブルのレコード番号を乗算したレコードが含まれています。
/* CROSS JOIN */
SELECT t1.*,t2.*
FROM Table1 t1
CROSS JOIN Table2 t2
両方の結合は同じ結果になります。クロス結合はSQL 99結合であり、デカルト積はOracle独自結合です。
「where」句のないクロス結合は、デカルト積を与えます。デカルト積の結果セットには、最初のテーブルの行数に2番目のテーブルの行数を掛けたものが含まれます。 (結果セットの次元が高くなります)。