好的,所以我有以下架构和查询因为ORDER BY而非常慢(当使用真实数据时):
http://sqlfiddle.com/#!2/5e7bb/10
根据mysql man:“你正在加入很多表,而ORDER BY中的列并不是来自用于检索行的第一个非常量表。(这是EXPLAIN输出中第一个没有的表)有一个const连接类型。)“
但我仍然需要按该列排序。我怎么需要这样做?
答案 0 :(得分:0)
更新:,因为小提琴已更新:
SELECT
cpa.product_id,
cp.product_internal_ref,
cp.product_name,
cpa.product_sale_price,
cpa.is_product_service,
cpa.product_service_price
FROM
catalog_products_attributes cpa
JOIN
catalog_products cp ON cp.product_id = cpa.product_id
WHERE
cpa.product_id IN (
SELECT
product_id
FROM
catalog_products_categories
WHERE
category_id = 41
)
ORDER BY
cpa.product_service_price DESC