アイテムリストのアイテムにリンクされた価格リストから最高価格を検索するために、この優れた、しかし動作が遅いSQLステートメントを作成しました。既知のアイテムitemnr:
SELECT i.ItemNr, i.ItemId, x.maxprice
FROM itemlist i,
pricelist p,
(SELECT MAX (p2.price) AS maxprice, p2.ItemId
FROM pricelist p2
GROUP BY p2.ItemId) x
WHERE i.ItemNr = 4711
AND i.ItemId = p.ItemId
AND i.ItemId = x.ItemId
AND p.price = x.maxprice
アイテムリストには約100000のアイテムが含まれ、価格リストには約1000000の価格が含まれます。このステートメントは本当に遅いです。db-serverは、検索するすべてのアイテムの価格表全体を検索するのではないかと心配しています。
itemnrを知っています。しかし、どういうわけか、対応するitemidを検索して、このitemidをサブクエリに「送信」できますか?したがって、サブクエリはこのアイテムの最高価格をすばやく見つけることができますか?または、私の問題に対する他の解決策はありますか?
助けてください。