MySQL: ORDER BY перед GROUP BY

338
11 апреля 2017, 09:35

такая ситуация: есть две таблицы: одна с товарами, другая таблица с ценами на них у поставщиков, т.е. для одного товара в таблице №1 есть несколько записей во таблице №2 с ценой и наличием.

пытаюсь сделать запрос, который бы вывел товары, а также его минимальную цену и максимальное наличие.

т.е. есть: table1.item_id = товар и table2.item_id = товар table2.item_price = цена table2.item_avail = наличие

цена и наличие числовые поля, чем выше значение в наличии, тем приоритетнее должен быть результат.

я делаю объединение двух этих таблиц, сортирую по наличию и цене, затем группирую по item_id. Но по факту группировка происходит раньше чем сортировка.

запрос такой:

SELECT `item_id`, `item_price`, `item_avail`
FROM (
    SELECT  *        
    FROM `items` as `table1`
    LEFT JOIN(            
        SELECT * FROM `prices`
        GROUP BY `item_id`
        ORDER BY`item_available` DESC,  `item_price` ASC        
    ) as `table2` on `table2`.`item_id` = `table1`.`item_id`
) as `table1`

соответственно получается что в сортировке уже участвует только одна запись из таблицы 2. подскажите, как можно сделать сортировку, перед группировкой?

READ ALSO
PHP Как подключиться БД MySql?

PHP Как подключиться БД MySql?

Что я делаю не так

315
GET-параметр страницы

GET-параметр страницы

Возник такой вопрос, у меня страница профиля пользователя определяются GET параметром ( sitecom/profile

288
И вновь про mysql и кириллицу

И вновь про mysql и кириллицу

Имеется БД с параметрами:

334
Сгруппировать значения в массив по ID

Сгруппировать значения в массив по ID

ЗдравствуйтеЕсть таблица с диалогами и сообщениями (обычный ассоциативный запрос)

350