sql Многие ко многим -- JOIN, HAVING, COUNT (Пример для mysql)

Forums:

Задача была (из списка задач с собеседований):

У книги и авторы, одну книгу могут писать несколько авторов и, конечно же, один автор может написать много книг (это "многие ко многим", потому через 3 таблицы).
Напишите запрос, который выведет названия книг написанных ровно двумя авторами.

Примечание: для решения этой задачи таблица авторов нам вообще не нужна, достаточно использовать таблицу книг и таблицу связи, условие на группу налагаем с помощью оператора HAVING, группировать будем, соответственно по книге (в примере ниже по её id).

Пример запроса:

SELECT book.id, book.name FROM book JOIN book_author 
ON book.id = book_author.book_id 
GROUP BY book.id HAVING COUNT(book.name) = 2;