我有一个表,称为价格组成的几个字段,其中两个是产品编号和价格类型。一些产品同时具有批发价格(PriceType = W)
和零售价格(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子句。
任何想法?
是否运行在MS Access或SQL Server查询,也就是,它是一个传递查询还是针对链接表的查询? – Fionnuala