以下にクエリを記述しましたが、必要なデータが返されます。しかし、私はそれを書くためのより良い方法があると思わずにはいられません。私が必要としてTable1
いるのは、ベンダーが属するカテゴリで、指定されたベンダーの価格よりも高い価格を持つすべての一意の行を見つけることです。(理論的には、ベンダーが属することができるカテゴリの数に制限はありません)。
VendorID
Table1は、、、Category
およびを含む相互参照テーブルです。price
- 表2にはベンダー情報が含まれています
- カテゴリ名を含むカテゴリテーブルがあります。
..。
SELECT DISTINCT Table2.name, Table2.city, Table2.state
FROM Table1 INNER JOIN Table2 ON Table1.VendorID = Table2.VendorID
WHERE Table1.Category IN (49,50,45)
AND Table1.price > (SELECT price FROM Table1 WHERE VendorID = 69041 AND Category = 50)
AND Table1.price > (SELECT price FROM Table1 WHERE VendorID = 69041 AND Category = 49)
AND Table1.price > (SELECT price FROM Table1 WHERE VendorID = 69041 AND Category = 45)