いくつかのフィールドで構成される Price というテーブルがあり、そのうちの 2 つはProductIdとPriceTypeです。一部の製品には、卸売価格(PriceType = W)
と小売価格(PriceType = R)
の両方があります。つまり、同じ製品 ID を持つ 2 つのレコードがあります。
小売価格のない製品 (つまり、レコード W が 1 つしかない製品) をユーザーに表示したいと考えています。
これを行うには、クエリをどのように記述すればよいですか?
私は次のようなものを使用しました
Select * from Products
INNER JOIN Prices ON Products.Id = Prices.ProductId
WHERE ProductId NOT IN
(SELECT ProductId FROM Prices WHERE PriceType="R")
しかし、これは実行が非常に遅いです。時間がかかっている部分が本当にNOT IN句であることを確認しました。
何か案は?