私はこのクエリを入力し、SQLが返す結果が多すぎるのはなぜですか?
SELECT OrderDetails.OrderDetailID, Customers.CustomerName
FROM OrderDetails, Customers
NATURAL JOIN Products
NATURAL JOIN Customers
WHERE SupplierID = 5;
1001のレコードが返されます。
私はこのクエリを入力し
、SELECT OrderDetailID
FROM OrderDetails
NATURAL JOIN Products
WHERE SupplierID = 5;
11のレコードが
を返された顧客テーブル内の91枚のレコードと11件の結果2番目のクエリで返されると、91 * 11がありますが予想されるよう= 1001。私はこれを取り除き、このような最初のクエリで返される重複した結果を防ぐ方法を知らない。
スキーマの添付:http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
私は離れて、自然から合流いたい、彼らはあなたに本当の利益とAのためのタイピングの少し量を節約します(例えば、後でプロジェクトが成長した後、 "標準化された"タイムスタンプがテーブルに追加され、以前に動作していたNATURAL JOINは同じタイムスタンプの結果のみを返します)。 – Uueerdo
^^はい、推測せずに正確な回答を提供できるように、テーブル構造を投稿してください。しかし、この問題は、 'FROM OrderDetails、Customers'を使うことに起因しています。ここではカンマ構文のため暗黙的な内部結合を持つデカルト積を作成しました。 –
あなたが含むリンクは実際にスキーマを表示しません。質問を編集して、ここに直接 'CREATE TABLE'文を追加してください。 –