SELECT
Users.user_id, Users.location, Profession.name
FROM
Users
FULL OUTER JOIN
User_Education ON Users.user_id = User_Education.user_id
INNER JOIN
Profession ON Profession.profession_id = Users.desired_job
FULL OUTER JOIN
Exp_Duration ON Exp_Duration.user_id = Users.user_id
FULL OUTER JOIN
User_Skill ON Users.user_id = User_Skill.user_id
WHERE
1 = 1
AND Users.user_id IN (1491, 1493, 1497, 1498)
AND Users.active = 1
Я пытаюсь упорядочить результаты, полученные по этому запросу, для сопоставления с ключевым словом.Например, я хочу иметь возможность перейти к «инженеру-программисту» и увидеть, что пользователи с активной записью в таблице «Профессия» оказались сверху.Какой самый эффективный способ добиться этого?
Вот один из многих неудачных методов, которые я использовал:
SELECT
Users.user_id, Users.location, Profession.name
FROM
Users
FULL OUTER JOIN
User_Education ON Users.user_id = User_Education.user_id
INNER JOIN
Profession ON Profession.profession_id = Users.desired_job
FULL OUTER JOIN
Exp_Duration ON Exp_Duration.user_id = Users.user_id
FULL OUTER JOIN
User_Skill ON Users.user_id = User_Skill.user_id
WHERE
1 = 1
AND Users.user_id IN (1491, 1493, 1497, 1498, 1503)
AND Users.active = 1
ORDER BY
CASE
WHEN Profession.name LIKE 'Software Engineer'
THEN 0
ELSE 1
END, Profession.name ASC