SELECT column_1 FROM table_1,table_2;
データベースでこれを実行したとき、重複するcolumn_1の値を持つ膨大な数の行が返されました。なぜ私はこれらの結果を得たのか理解できませんでした。このクエリが何をしているか説明してください。このSQLクエリは何をしますか? SELECT column_1 FROM table_1、table_2;
SELECT column_1 FROM table_1,table_2;
データベースでこれを実行したとき、重複するcolumn_1の値を持つ膨大な数の行が返されました。なぜ私はこれらの結果を得たのか理解できませんでした。このクエリが何をしているか説明してください。このSQLクエリは何をしますか? SELECT column_1 FROM table_1、table_2;
からcross productを与え、それが表Aの各レコードのために、あなたは表B(すべての可能な組み合わせ)からすべてのレコードを取得することを意味します。 3つのレコードをレコード3および表Bと
テーブルAは、結果9つの合計レコードを与える:
しばしば自身が生成する手段であるデカルトクエリ(たとえば、リストのための基礎として使用TableA-1/B-1
TableA-1/B-2
TableA-1/B-3
TableA-2/B-1
TableA-2/B-2
TableA-2/B-3
TableA-3/B-1
TableA-3/B-2
TableA-3/B-3
再発スケジュールに基づく将来の日付の数:次の6ヶ月間のすべての可能な結果を与え、その曜日が一致するものに限定してください)
これは2つのテーブルをクロス結合する '有効な'方法です;しかし、それは好ましい方法ではありません。 Cross Join
がはるかに明確になります。 on
条件は、結果を制限するのに役立ちます。
これは、クロスジョインを行う別の方法です。ありがとう。 – serbia99
私はJhon、Ana、Nickという3人の友達がいるとします。それから私は他のテーブル2に赤と黄色のTシャツがあり、私は魔女がいることを知りたい。クエリ中のSO
にtableAさ:友達とテーブルB:Tシャツを返します:
1|JHON | t-shirt_YELLOW
2|JHON | t-shirt_RED
3|ANA | t-shirt_YELLOW
4|ANA | t-shirt_RED
5|NICK | t-shirt_YELLOW
6|NICK | t-shirt_RED
あなたがこれを見たように、すべてのかのう組み合わせがあなたに何を生成し評価することによってので、友人とTシャツの間には関係のロジックを持っていない参加します重複を呼び出す。
は、join条件なしでtable1、table2からcolumn_1を選択します。あなたは 'where table1.id = table2.id'のような条件を追加する必要があります – RealCheeseLord
おそらく少しの努力です。サンプルデータはありません。予想される結果はありません。任意のdbmsタグ付けなど – jarlh
今日のヒント:現代的で明示的な 'JOIN'構文に切り替えます。 (エラーなしで)書きやすく、読みやすく(維持しやすい)、必要に応じて外部結合に変換する方が簡単です。 – jarlh