@0ldn0mad

Как изменить SQL-запрос?

Добрый день.
Есть таблица workers с полями: id, name, age, salary
Задача: Из таблицы workers достаньте работников со второго по шестого и отсортируйте их по возрастанию возраста.
Очевидное решение задачи:
SELECT * FROM workers WHERE id >0 ORDER BY age LIMIT 2,6
Но в данном запросе мы сначала сортируем, потом выбираем. Пробовал поставить местами ORDER и LIMIT, получает ошибка.
А как по другому поставить запрос чтобы сначала выбрать записи, а потом их отсортировать?
  • Вопрос задан
  • 254 просмотра
Решения вопроса 1
john36allTa
@john36allTa
alien glow of a dirty mind
0ldn0mad,
SELECT * 
FROM (
   SELECT * 
   FROM workers 
   WHERE id >0 LIMIT 2,6 
) AS T1
ORDER BY age
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Vitsliputsli
Что значит "достаньте работников со второго по шестого "? В нормальной работе такое не делают через LIMIT, потому как он нам даст невесть кого, а нам скорее всего нужны конкретные работники, предположу что со 2го по 6го по id, тогда:
SELECT 
        * 
    FROM workers 
    WHERE id>=2 AND id<=6
    ORDER BY age
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
со второго по шестого
В СУБД нет номеров, есть только порядок сортировки.
Идентификатор обычно начинается с 1.
сначала выбрать, потом отсортировать
Подзапрос.
Ответ написан
Ваш ответ на вопрос

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

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