2016-06-12 6 views

答えて

0

の両方を持っているサプライヤを取得したいです。もしそうなら、あなたは(あなたが名前を指定していないので、私はそれSupplierItemsと呼ばれる)は、関連するテーブルを確認するために、2つのEXISTSステートメントを使用することができますitempk=1を持つレコードとitempk=2

SELECT s.* 
FROM Suppliers s 
WHERE 
    EXISTS (SELECT 1 FROM SupplierItems si1 WHERE si1.supplierpk = s.id and si1.itempk = 1) 
    AND 
    EXISTS (SELECT 1 FROM SupplierItems si2 WHERE si2.supplierpk = s.id and si2.itempk = 2) 
+2

たとえば、9個のアイテムがあるサプライヤを探す必要がないとしましょう。 – Strawberry

1

tablepkを取り除くの両方を持っています。それは目的を果たさない。代わりに、残りの列は主キーです。

SELECT supplierpk 
FROM supplieritems 
WHERE itempk IN (1,2) 
GROUP BY supplierpk 
HAVING COUNT(*) = 2; 
関連する問題