Проблема с составление запроса SQL
Возникла проблема с формированием запроса (Отобразить публикации, у которых более 2 авторов и все авторы мужчин
Select Название_публикации, count(АвторПубликаций.id_автора) as Количество_Авторов
from Публикации, АвторПубликаций, Авторы
where (Публикации.Код_публикации=АвторПубликаций.Код_пуб ликации and Авторы.id_автора = АвторПубликаций.id_автора )
group by Название_публикации,Пол
having count(АвторПубликаций.id_автора)>=2 and Пол='М';
В итоге выводит не совсем правильно. Отобразить публикации, у которых более 2 авторов -> данную часть выводит правильно , а вторую "и все авторы мужчин" нет (выводит кол-во авторов мужского пола у данной публикации)
Как сделать запрос что бы выводились публикации только там где ВСЕ авторы мужчины ?
Ответы (1 шт):
Автор решения: RabbiQQQ
→ Ссылка
Select Название_публикации, count(АвторПубликаций.id_автора) as Количество_Авторов
from Публикации, АвторПубликаций, Авторы
where (Публикации.Код_публикации=АвторПубликаций.Код_публикации and Авторы.id_автора = АвторПубликаций.id_автора ) and Название_публикации in (select Название_публикации from Публикации, АвторПубликаций, Авторы where (Публикации.Код_публикации=АвторПубликаций.Код_публикации and Авторы.id_автора = АвторПубликаций.id_автора ) group by Название_публикации having count(distinct Пол)=1)
and Пол ='М'
group by Название_публикации
having count(АвторПубликаций.id_автора)>=2
Вот готовое решение(возможно не самое лучшее(ужасное)).