Как можно упорядочить по двум полям, если значение не больше другого? Вот пример того, что я написал.
SELECT *
FROM contest_results r
LEFT
JOIN participant_users u
ON r.participant_id = u.id
LEFT
JOIN contest_entry_tie_answers t
ON u.id = t.participant_id
LEFT
JOIN contest_answers a
ON a.question_id = t.tie_breaker_question_id
WHERE r.contest_id = 20
ORDER BY r.correct_answers DESC,
t.answer <= a.possible_answer ASC
Теперь представьте, что этот запрос возвращает две строки, а contest_entry_tie_answers
. answer
имеет значение 103, а другую - 106. Наконец, представьте, что contest_answers
. possible_answer
имеет значение 105, потому что это поле было проверено как правильный ответ. Я хочу иметь возможность заказать результаты как contest_entry_tie_answers
. answer
<= <code>contest_answers. possible_answer
.
Это будет означать, что ответ 103 будет показан первым в том случае, если предыдущий порядок на contest_results
. correct_answers
возвращает значение ie для обоих. Тогда результат 106 будет показываться последним, потому что он прошел реальный правильный ответ 105.
Есть ли способ сделать это? Надеюсь, в этом был какой-то смысл.