我在下面编写了查询,它返回了我需要的数据。但是,我不禁想到有更好的方法来编写它。我需要的是Table1
在供应商所属的类别中找到价格高于指定供应商价格的所有唯一行。(理论上,供应商可以属于的类别数量没有限制)。
- 表 1 是一个交叉引用表,包含
VendorID
、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)