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


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

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

Войти через центр авторизации
Похожие вопросы
BORK Москва
от 120 000 руб.
SaveTime Москва
от 140 000 до 200 000 руб.
24 февр. 2019, в 00:36
5000 руб./за проект
23 февр. 2019, в 23:19
800 руб./за проект
23 февр. 2019, в 20:49
500 руб./за проект