[英]query optimization
我需要來自4個不同類別的最新4個產品。 該查詢不起作用
SELECT
ProductID,ProductName,thumb
FROM
tbproduct
WHERE
status =2
GROUP BY
`CATEGORYID`
ORDER BY
`ProductID` DESC
LIMIT 4
所以我首先按所有記錄排序。並使用以下查詢...
SELECT
ProductID, ProductName, thumb
FROM
(
SELECT
ProductID,ProductName,thumb,CATEGORYID
FROM
tbproduct
WHERE
status =2
ORDER BY
`ProductID` DESC
) AS tmp
GROUP BY
`CATEGORYID`
ORDER BY
`ProductID` DESC
LIMIT 4
這個查詢很慢,任何人都可以向我建議它的快速查詢。 我使用MySQL。
如果您僅使用:
SELECT
ProductID,ProductName,thumb,CATEGORYID
FROM tbproduct
WHERE status=2
GROUP BY CATEGORYID
ORDER BY ProductID DESC
LIMIT 4
SELECT
Max(ProductID), ProductName,thumb
FROM
tbproduct
WHERE
status =2
GROUP BY
`CATEGORYID`
ORDER BY
ProductID DESC
LIMIT 4
這行不通嗎?
不確定這是否有幫助,請參閱更新的查詢。 請參閱Group-by Aggragate的用法 。
注意: 這將無法可靠地返回其他列。 請在此處查找左自我排斥的加入
SELECT
ProductID, ProductName, thumb
FROM tbproduct
WHERE ProductID in (
SELECT max(ProductID)
FROM tbproduct
WHERE status = 2
GROUP BY CATEGORYID
ORDER BY ProductID DESC
LIMIT 4
) ORDER BY ProductID DESC
那應該做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.