Я делаю соединение на двух столах. Один - это таблица пользователей, а другой - список премиум-пользователей. Мне нужно, чтобы премиум-участники появлялись первыми в моем запросе. Однако то, что они находятся в таблице премиум-пользователей, не означает, что они все еще являются премиум-членами, - есть поле IsActive, которое также необходимо проверить.
Так что в основном мне нужно возвращать результаты в следующем порядке:
- Активные Премиум Пользователи
- Обычные и неактивные премиум-пользователи
Прямо сейчас у меня это выглядит следующим образом:
SELECT Users.MemberId, PremiumUsers.IsActive FROM Users
LEFT JOIN PremiumUsers ON PremiumUsers.UserId = Users.Id
ORDER BY PremiumUsers.IsActive DESC
Проблема в том, что он ставит неактивных премиум-членов выше не премиум-членов.
(для этого я использую MS SQL Server 2005)