我需要從項目列表中選擇50個滿足搜索條件的項目。 我還需要當前銷售量。 項目列表已經超過10萬條記錄選擇後的Mysql加入
這就是我現在做的事:
SELECT
items.id,
CONCAT(prod_codes.code,items.item) AS item,
items.price,
sold.count
FROM items
LEFT JOIN prod_codes ON items.prod_code_id=prod_codes.id
LEFT JOIN (
SELECT COUNT(*) AS count,CONCAT(prod_code,part_num) AS part
FROM `sold_items`
WHERE 1
GROUP BY CONCAT(prod_code,part_num)
ORDER BY count DESC
) AS sold ON sold.part=CONCAT(prod_codes.code,items.item)
WHERE active_status=1
AND CONCAT(items.prod_code,items.item) collate utf8_general_ci LIKE '%".$search_part."%'
AND items.description collate utf8_general_ci LIKE '%".$search_desc."%'
ORDER BY items.item
LIMIT 50
但這個查詢需要在20秒內執行。我相信有更好的方法來做到這一點。
爲什麼'GROUP BY CONCAT(prod_code,part_num)'而不是'GROUP BY prod_code,part_num'? –