1

それで、私は興味深いことに出くわしました.それが何と呼ばれているのか見当がつかないので、以前に答えられたかどうかはわかりません. 2 つのテーブルがあるとします。最初の行は 1 行で、2 番目の行は 2 行です。次のステートメントを実行すると:

SELECT t1.*
FROM table1 t1, table2 t2

2 つの行が返され、どちらも同じ値ですが、最初のテーブルには 1 つの行しかありません。なぜこれが起こるのですか?それに応じてselect句を変更しなければ、from句に別のテーブルを置いても何も変わらないと思いました。

4

1 に答える 1

6

2 つのテーブルのデカルト積を選択しています。

レコードを返します: からのレコードと からCOUNT(t1) * COUNT(t2)のレコードのすべての可能な組み合わせ。t1t2

構文を使用ANSIすると、クエリは次のようになります。

SELECT  t1.*
FROM    table1 t1
CROSS JOIN
        table2 t2
于 2012-06-07T16:49:07.803 に答える