X

MySQL: id в обратном порядке, сохраняя порядок значений других столбцов

Изучая вопросы на Toster-ре, наткнулся на один интересный вопрос, а именно: Как вывести id в обратном порядке, сохраняя при этом порядок значений..

Имеем:

Нужно написать запрос, чтобы получить такой вывод

На первый взгляд довольно тривиальная задача, однако не все так просто. Предлагаю Вам не смотреть сразу мое решение, а попробовать решить задачу самостоятельно.

Я уверен, что Вам лень писать запросы для создания схемы базы, поэтому предоставлю Вам сразу схему создания базы и тестовые данные.

Теперь Вы можете открыть sqlfiddle.com и сразу попробовать написать запрос.

Те кто не сталкивался с sqlfiddle.com ранее, рассказываю как работать: вставляете код выше в поле Schema Panel (слева) и нажимаете кнопку [Build Schema]. Затем в правой части можете писать запрос, опираясь на указанную схему. Например в нашем случае, можно начать с запроса: SELECT * FROM tmp

Так же чтобы исключить обсуждения того, что такие запросы нельзя писать, дополню вопрос тем, что id в данном примере не Primary Key, не имеет UNIQUE индекса и может содержать другие последовательности, например не 1-2-3-4, а 2-5-8-0. Суть вопроса в том, чтобы одним запросом вывести эти значения в обратном порядке, при этом сохраняя последовательность значений во второй колонке.

Если Вы решили задачу не посмотрев мое решение, напишите ваше решение в комментарии. То, как решил его я Вы можете увидеть на второй странице этого поста.

Категории: MySQLБазы данныхБезднаЗаметкиСобеседования
Тэги: mysqlsqlзадачасобеседование