Sql / join Сортировка идет "волнами"

Имеются 3 таблицы - products - products_and_promotions - stores_remains Нужно отсортировать по полю stores_remains.total_remains Проблема в том, что в результате запроса сортировка происходит "волнами" т.е. большая часть товаров отсортировалась от 9999 до 0 и дальше снова идет группа товаров с не 0 данными в поле сортировки. Сам запрос:

select distinct SQL_CALC_FOUND_ROWS products.id, stores_remains.total_remains 
as remains_sum 
from `products` 
inner join `products_and_promotions` 
on `products_and_promotions`.`product_id` = `products`.`id` 
left join `stores_remains` 
on `stores_remains`.`parent_id` = IFNULL(products.parent_id, products.id) 
and `stores_remains`.`color_id` = `products`.`color_id` 
where `products_and_promotions`.`promotion_id` = 323 
and `deleted` != 1 
group by `products`.`id` 
order by `remains_sum` 
desc limit 30 offset 390;

Проблема наблюдается в выводе на сайте (поле stores_remains.total_remains). Но если сам запрос проверить в редакторе, то в поле в remains_sum значения будут не те, что изначально в таблице стояли. Т.е. если смотреть таблицу, поле stores_remains.total_remains - будет иметь значения 9999, 234, 444 и т.д. В результатах запроса же там только 1, 0 и null . Я подозреваю, что проблема - сортировка "волнами" - именно в этом последнем нюансе. Подскажите пожалуйста почему происходит эта "подмена" данных в поле и есть ли проблема в запросе или нужно искать причину в самих данных?


Ответы (0 шт):