Morterset
@Morterset
Программист

Почему на mariaDB не работает запрос?

Здравствуйте. Есть SQL запрос:
SELECT * FROM (SELECT * FROM `b_users` WHERE `b_id`=4 ORDER BY `id` DESC) AS t GROUP BY `user_id`

На сервере MySql 5.6 запрос работает корректно. А вот на MariaDB 10.1.34 сортировка (DESC) не отрабатывает. Как будто система не определяет вложенный (SELECT). Хотя отдельно этот запрос везде работает корректно.
SELECT * FROM `b_users` WHERE `b_id`=4 ORDER BY `id` DESC


Не подскажете в чем может быть проблема совместимости?
Заранее благодарен.
  • Вопрос задан
  • 366 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Так при группировке сортировка внутреннего запроса и не обязана сохраняться. А в MySQL 5.7.5 и выше с настройками по умолчанию такой запрос вообще выдаст ошибку, в запросах с группировкой по стандарту можно запрашивать только поля, входящие в GROUP BY или результаты агрегатных функций.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
opium
@opium
Просто люблю качественно работать
Сделайте без подзапроса просто его
Ответ написан
@drrtuy
А какой результат вы считаете корректным: отсортированный по убыванию id? Если так, то, к сожалению, внешний group by неявно добавляет сортировку по полю группировки и я бы советовал добавить сортировку во внешний запрос.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы