sql查询多对多

sql query many-to-many

我有三个表: 作者 (author_id、author_name)、书籍 (book_id、book_name)、author_book (author_id、book_id)。我想找到所有写了两本书以上的作者。 我该怎么做?

select a.autor_name
from authors a
join author_books ab on ab.author_id = a.author_id
join books b on ab.book_id = b.book_id
group by a.author_name
having count(b.book_id) > 2

我想这就是您要找的东西

select a.author_name, count(ab.book_id) total_books
from author_book ab
join authors a on a.author_id = ab.author_id
group by ab.author_name
having count(ab.book_id) > 2
select a.author_name, count(ab.author_id) as "no_of_books"
from author_book ab
join author a on a.author_id = ab.author_id
group by a.author_name
having COUNT(a.author_name) > 2