Сортировка DISTINCT CASE

139
01 июля 2019, 09:30

Есть таблица

Надо получить уникальных id пользователей, которые отправляли сообщения пользователю "1".

Составил запрос

SELECT DISTINCT (CASE
                WHEN user_add='1'
                   THEN user_from
                WHEN user_from='1'
                   THEN user_add
                END
             ) AS user_id FROM message WHERE user_add='1' OR user_from = '1'

результат

Вопрос как отсортировать по дате или id, ORDER BY id DESC не работает?

Все, вот так работает:

SELECT CASE WHEN user_add='1' THEN user_from WHEN user_from='1' THEN user_add END AS user_id , max(id) FROM message WHERE user_add='1' OR user_from = '1' group by user_id order by max(id) DESC

Спасибо!

Answer 1
    SELECT user_add id
    FROM message 
    WHERE user_from = 1
UNION
    SELECT user_from
    FROM message 
    WHERE user_add = 1
ORDER BY id DESC

fiddle

READ ALSO
Функционал скидок для ecommerce laravel

Функционал скидок для ecommerce laravel

Есть БД с таблицей products (id,name,price)Возник вопрос: каким образом лучше делать функционал скидок на товары? Пока в голове 2 варианта:

153
Ошибка при подключении к MySql через EF в Net

Ошибка при подключении к MySql через EF в Net

Пытаюсь подружитьNet, EF и MySql

138
Оптимизация оконной функции

Оптимизация оконной функции

Подскажите, можно ли оптимизировать оконную функцию? Имею в виду применение индексов для оптимизации производительности в такой ситуации:...

137
Spring-Rest controller не видит UserRepository

Spring-Rest controller не видит UserRepository

Подскажите пожалуйстаНе понимаю в чем проблема, делаю всё по уроку, но ловлю такую ошибку:

141