2015-12-29 2 views
-3

У меня проблема при использовании Order By и Group By в строке запроса.Order By before Group By Mysql

Я хочу Order By до Group By, но это не работает.

Я искал и найти какое-то решение, но оно не работает со мной:

SELECT * FROM 
(
    SELECT minder_id, service_type_id 
    FROM minder_service 
    WHERE minder_id = 238 
    AND deleted_at is null 
    ORDER BY service_type_id ASC 
) AS t 
GROUP BY t.minder_id 
  • Run 1

    ВЫБОР minder_id, service_type_id ОТ minder_service ГДЕ minder_id = 238 И deleted_at является нулевым ЗАКАЗ BY service_type_id ASC

Результат: Photo for Result 1

Пожалуйста, посмотрите на.

Большое спасибо.

+0

Что вы пытаетесь достичь? – HoneyBadger

+0

Что вы хотите сделать по этому запросу? в этом запросе нет ни одного имени таблицы –

+0

вы хотите с наименьшим service_type_id? Если да, то используйте DESC вместо ASC –

ответ

1

Если вы хотите самую низкую service_type_id, вы можете использовать функцию MIN:

SELECT minder_id, MIN(service_type_id) 
FROM minder_service 
WHERE minder_id = 238 AND deleted_at IS NULL 
GROUP BY minder_id 

Также убедитесь, что deleted_at действительно NULL для записи с service_type_id 1, если вы говорите, что вы ожидаете, что запись.

+0

Отлично, спасибо. Он работает со мной. –

+0

Добро пожаловать, но в stackoverflow цель состоит в том, чтобы пометить ответ как принятый. Таким образом, вы показываете, что это сработало для вас, и вы отдаете должное тому, кто ответил. – Peter

0

Подзапрос возвращает неупорядоченный набор. База данных не должна сохранять порядок при передаче результата подзапроса внешнему запросу или при выполнении операции group by.

Вы должны переосмыслить то, что вы пытаетесь сделать.

+0

Спасибо, ответ. –