article_id),
* articles(id, title, ...)
Т. е. авторы имеют связь многие ко многим со статьями.
Как найти всех авторов у которых есть как минимум две указанных статьи?
Думаю это сделать так: склеить агрегатной функцией array_agg id статей и в having фильтровать записи этим полученным массивом, но что-то мне кажется что-это не очень SQL решение. Какие есть другие решения и где бы о таких ситуациях почитать?
select author_id from authors_articles WHERE article_id IN (<указанные статьи>) GROUP BY author_id HAVING COUNT(1)>1
А если помимо фильтра статей, есть еще доп. фильтрация по полям пользователя, то тогда только с подзапросами?
нет, приджойнить пользователя и ограничить, типа join users U on U.us_id=authors_articles.us_id
Обсуждают сегодня