SQL: поставить строки в верхней части запроса, если столбец существует в другом месте - PullRequest
0 голосов
/ 13 марта 2019

У меня есть строки в таблице, которые будут просматривать несколько пользователей.Пользователи могут «избрать» строку, которая добавляет имя пользователя / ключ строки в отдельную таблицу.

Я хочу сделать запрос, который упорядочивает «избранное» вверху.Я предполагаю, что для этого потребуется подзапрос, но я не уверен, как лучше поступить.

Одна из моих идей заключалась в том, чтобы запросить мою таблицу, где она существует в избранном, а затем объединить все в запрос, гдеэто не существует в избранном.Но мне интересно, есть ли лучший способ.

1 Ответ

0 голосов
/ 14 марта 2019

Вы бы хотели что-то вроде этого:

select t.*
from t left join
     favorites f
     on t.pk = f.pk and f.userid = @userid
order by (case when f.pk is not null then 1 else 2 end);

pk - это первичный ключ исходной таблицы, используемый для уникальной идентификации каждой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...