これまで同様の質問がありましたが、2つ以上のテーブルについては見たことがありません。そして違いがあるようです。SQL EXISTSは2つ以上のテーブルを持つすべての行を返します
私は私が私がorderID
とquantity
(=数量が発注した)を取得、そこからcustomerID
とorderID
とlineitems
を取得orders
そこからフィールドを、私はからcustomerID
とorderID
が必要customers
を、必要があるから、3つのテーブルを持っています。それは私にすべての行の数を返している理由を私は理解していない
SELECT COUNT(DISTINCT custID)
FROM customers
WHERE EXISTS(
SELECT *
FROM customers C, orders O, lineitems L
WHERE C.custID = O.custID AND O.orderID = L.orderID AND L.quantity > 2
);
:
は、私は多くの顧客がそう基本的に、同じ項目の2つ以上を買ったと数量> 2か知りたいです。 > 2の条件をチェックする前にサブクエリを相関させていますか?そうではありませんか?
私は初心者ですので、必要に応じて基本的に私に説明していただければ幸いです。ありがとう。
これは、お客様をもう一度繰り返すことによって発生しますか?または、 'FROM ... WHERE ... 'の代わりに' JOIN'を使用すると、複数のテーブルを使うときに違いがありますか? – sandboxj
@sandboxjはいこのエラーは、再び「顧客」という表が使用されていることに起因します。これは相関の考え方に打ち勝ちます。カンマで区切った古い形式の構文の代わりに、上記のクエリのような現代的な 'JOIN'構文を使用することも好ましいです。 –