Given 2 tables T1 and T2.
T1 T2
A 1
B 2
C 3
What is the no: of rows that are fetched from this query?
回答これはデカルト積である9なぜこの行から9行がフェッチされますか?
Given 2 tables T1 and T2.
T1 T2
A 1
B 2
C 3
What is the no: of rows that are fetched from this query?
回答これはデカルト積である9なぜこの行から9行がフェッチされますか?
他の条件が指定されていないため、このクエリの結果はcartesian productになります。最初のテーブルのすべての行は、2番目のテーブルのすべての行と一致します。
結果は、あなたがすることを求めたものだ
A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2
C 3
@Klaus Byskov Hoffmannありがとう! – nan
である:一つのテーブル(3)と別のテーブルのすべての行からのすべての行を選択(3)それらを組み合わせるので、3 * 3 = 9となります。
です。すべての行は、すべての行はT2
です。それらは一緒に追加されるだけではなく、カラムが異なる場合は動作しません。たとえば、UNION
でこれを行うことができますが、それらは「デカルト製品」として統合されます。基本的には、両方のテーブルの行のすべての組み合わせを取得します。そして3*3 = 9
。
@Downvoter:一般的な礼儀で、downvotesを説明するコメントを残してください。 –
第1のテーブルの各レコードが第2のテーブルの各レコードとともに返され、結果がフィルタされないためです。
正確な出力は次のようになります。
T1 T2
A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2
C 3
(順番は変更になる場合があります)
あなたが出力としてこれらの9つの行を持っていますか? –
Google:sql暗黙の "CROSS JOIN" – onedaywhen