Здравствуйте!
На сайте выводятся товары с сортировкой по рейтингу (поле
rating).
Также у товаров есть поле наличие (
availability), в котором указывается количество остатков товара, если товара нет в наличии, то соответственно указывается
0.
Теперь понадобилось выводить все товары с сортировкой по рейтингу, но чтобы товары, которых нет в наличии (
availability = 0), были в конце списка.
Так вот, сейчас запрос выглядит так:
SELECT ms2.*, ec.rating
FROM `rt_ms2_products` AS `ms2`
LEFT JOIN `rt_ms2_reviews` AS `ec` ON ms2.id=ec.id
GROUP BY ms2.id
ORDER BY ec.rating DESC
LIMIT 0, 20
Я думал, что такой запрос решит задачу, но оказалось нет. Товары с
availability=0 все равно появляются в середине списка.
SELECT ms2.*, ec.rating
FROM `rt_ms2_products` AS `ms2`
LEFT JOIN `rt_ms2_reviews` AS `ec` ON ms2.id=ec.id
GROUP BY ms2.id
ORDER BY ec.rating DESC, ms2.availability DESC
LIMIT 0, 20
Соответственно вопрос: какой составить запрос, чтобы выполнить данную задачу? Использовать UNION?