@senpay1

Поясните почему мой SQL запрос кака?

Но на простом языке запрос выводит сервера по таким критериям:
1)Имеют вип (is_vip = 1) и подключенные услуги
2)Не имеют вип, но имеют подключенные услуги
3)Имеют вип, но не имеют подключенных услуг
4)Не имеют випа, не имеют подключенных услуг
Каждая услуга имеет свой приоритет, по которому идёт сортировка, чтобы были такие услуги как "СУПИР ПУПИР УСЛУЖКО" выводили на первые места все сервера, что её подключили и ориентир шел именно на определенный флаг - priority (по нему и идёт сортировка везде).

Там 4 уровня выборок, каждый для чего-то нужен:
1. Выборка всех записей с инкрементом 'top' - для того чтобы определять в какой позиции находится запись
2. Второй просто для того чтобы задать переменную @c, которая потом перейдёт в top на 1 уровне select-а - это пришлось сделать так, потому что PDO не поддерживает видимо SET var := 0 и т.п.
3. Третий уровень просто нужен для того чтобы можно было объеденить результаты с сортировкой, ибо UNION не работает на выборках с ORDER BY
4. Четвертый уровень просто выводит данные нужные + JOINит
  • Вопрос задан
  • 195 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
почему нельзя один раз выбрать из джойненной таблицы данные с четырмя условиями и затем эти 1)-4) извлечь уже из них?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы