获取各类别下前3条产品信息,请达人帮助优化!致谢!
有两个表:Category表(产品目录表)和Product表(产品表),Category表里有两级,表结构如下:
CategoryID,ParentCategoryID
最上级的ParentCategoryID值为0
Product表中的数据目前大约3000条
我想获取每个目录下面的前3条数据,用如下方法:
SELECT A.ProductID,A.ProductName,A.CategoryID FROM Product A,Category B
WHERE A.ProductID IN
(SELECT TOP 3 ProductID FROM Product WHERE CategoryID=A.CategoryID)
AND A.CategoryID=B.CategoryID AND B.ParentFrontCategoryID IN
(SELECT FrontCategoryID FROM FrontCategory WHERE ParentFrontCategoryID='0')
ORDER BY A.FrontCategoryID
语句倒是比较简单,可在查询分析器里执行的平均时间要用到9秒,太慢了,客户受不了。
我不知道如何优化了,请达人提供优化解决方案,100分致谢!