battrack
@battrack

Как в sql запросе ограничить выборку по определенному полю?

Вопрос о том возможно ли в sql запросе как-то указать лимит выборки по определенному полю. Поясню:
Есть таблица книг, есть таблица авторов. Между ними связь, т.е. традиционный пример.
Допустим мне нужно выбрать из таблицы книг все книги авторов Иванов (id=1), Петров (id=2) и Сидоров (id=3).
Т.е. запрос будет такой:
SELECT * FROM books WHERE author_id=1 or author_id=2 or author_id=3;
Но дело в том, что мне нужно извлечь из базы книги этих авторов, но таким образом, чтобы книг Петрова (т.е. книг с author_id=2) в эту выборку попало, например, не более 2-ух. Т.е. книги иванова и сидорова должны быть все, а вот петрова только две.
Возможно это сделать в одном запросе?
  • Вопрос задан
  • 442 просмотра
Решения вопроса 1
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
SELECT * FROM books WHERE author_id=1 or author_id=3
UNION (SELECT * FROM books WHERE author_id=2 LIMIT 2)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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