mySQL ORDER BY в объединенных таблицах

Итак, у меня есть следующая схема и запрос, который очень медленный (при использовании реальных данных) из-за ORDER BY:

http://sqlfiddle.com/

Согласно mysql man: "Вы объединяете много таблиц, и столбцы в ORDER BY не все из первой непостоянной таблицы, которая используется для извлечения строк. (Это первая таблица в выводе EXPLAIN, которая не имеет констант присоединяйся.)

но мне все еще нужно отсортировать по этому столбцу. Как мне нужно это сделать?

1 ответ

ОБНОВЛЕНИЕ: так как скрипка была обновлена:

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 
Другие вопросы по тегам