我有一个名为 Price 的表,由几个字段组成,其中两个是ProductId和PriceType。有些产品同时具有 Wholesale price(PriceType = W)
和 Retail price (PriceType = R)
,即它们有两条具有相同产品 ID 的记录。
我想向用户显示那些没有零售价的产品(即只有一条记录 W 的产品)。
我应该如何编写查询来执行此操作?
我用过类似的东西
Select * from Products
INNER JOIN Prices ON Products.Id = Prices.ProductId
WHERE ProductId NOT IN
(SELECT ProductId FROM Prices WHERE PriceType="R")
但这执行得很慢。我已经检查并验证了花费很长时间的部分确实是 NOT IN 子句。
有任何想法吗?