2016-10-07 2 views
-1

У меня проблема при использовании Order By и Group By в строке запроса.Заказывать перед группой в подзапросе, работающем в mysql 5.5, но не в mysql 5.7

Существует таблица карьеры, которая содержит данные, как показано ниже:

 
id se_id enrollment_start 
------------------------- 
1 1  2005-07-01 
2 2  2008-10-12 
3 2  2006-05-09 
4 1  2016-11-10 
5 3  2015-02-04 
6 3  2010-08-11 

Я хочу, чтобы получить se_id, который имеет самый высокий enrollment_start.

Это заявление sql, которое я использовал. Он работает в MySQL 5.5, но не в MySQL 5.7:

 
SELECT 
    tmp.* 
FROM 
    (SELECT 
     * 
    FROM 
     careers 
    ORDER BY enrollment_start DESC) tmp 
GROUP BY tmp.se_id 

Это групповая максимальная проблема, и есть много вопросов, охватывают об этом. Но я не хочу ответа на эту проблему, я хочу знать, почему приведенный выше оператор woking в mysql 5.5, но он не работает в mysql 5.7 и есть ли какой-нибудь способ его исправить? Спасибо.

+0

, если работа в 5.5 была чистая удача. это не должно работать. –

+0

Я так не думаю, что я много раз проверял, он всегда работает как шарм, хотя я знаю, что subquerey возвращает неупорядоченный результат –

+0

см. Страницу руководства https://dev.mysql.com/doc/refman/5.7/en /group-by-handling.html – Drew

ответ

0

Если вы хотите, чтобы , чтобы получить se_id, который имеет самый высокий уровень регистрации. использование LIMIT:

SELECT * 
FROM careers 
ORDER BY enrollment_start DESC 
LIMIT 1 
+0

Спасибо. Но я хочу получить много строк, а не одну –

 Смежные вопросы

  • Нет связанных вопросов^_^