2
我在下面寫了查詢,它返回我需要的數據。但是,我不禁想到還有更好的方法來編寫它。我需要的是找到Table1
中的所有唯一行,其價格大於指定供應商在供應商所屬類別中的價格。 (理論上,供應商可以屬於的類別數量不受限制)。同一列的多個WHERE子句
- 表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)
類別表有vendoid嗎? – AnandPhadke 2012-08-14 03:49:54
否。分類表只是一個類別和標識列表。 – RHPT 2012-08-14 14:56:55