sql Многие ко многим -- JOIN, HAVING, COUNT (Пример для mysql)
Primary tabs
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;
- Log in to post comments
- 6753 reads