Abfrage der SQL-Abfrage - mysql, sql

SQL-Abfrage, um eine Liste von Autoren zu erhalten, die mindestens ein Buch über alle Genres geschrieben haben

Tabellen sind

      Author_id  |  Author_info  => authors
Genre_id   |  Genre_info   => genres
Author_id  |  Genre_id  |  Book_id  => books

Ich benutze Mysql, was wäre der beste Weg, dies zu tun?

Antworten:

2 für die Antwort № 1

Wenn N die Anzahl der verschiedenen Genres ist:

select author_id, count(distinct genre_id) as genres
from books
group by author_id
having genres = N

1 für die Antwort № 2

Angenommen, Datenbankschema als dies

authors
|-  Author_id  -|- Author_info -|
genres
|-  Genre_id   -|- Genre_info  -|
books
|-  Author_id  -|-  Genre_id   -|-  Book_id -|

Abfrage

SELECT authors.Author_id
FROM authors
LEFT INNER JOIN books ON (authors.Author_id = books.Author_id)
GROUP BY authors.Author_id
HAVING COUNT(DISTINCT books.Genre_id) = (SELECT COUNT(*) FROM genres)

0 für die Antwort № 3

Versuche dies:

SELECT Autor_id
Von Büchern
INNER JOIN Genre VERWENDUNG (Genre)
GROUP BY Autor_id
HABEN COUNT (Author_id)> = (SELECT COUNT (*) FROM Genre);

0 für die Antwort № 4

Zumindest ein Buch über alle Genres geschrieben

Versuchen...

select author_id, count(distinct genre_id) as genres
from books
group by author_id
having genres >= 1