|
MySQL.RU - Webboard
Вернуться
Не уверен в правильности запроса (Дима) 18/06/2018 - 11:53:45
Re: Не уверен в правильности запроса (Akina) 18/06/2018 - 14:20:05
From: Дима - 18/06/2018 - 11:53:45
Subject:Не уверен в правильности запроса
-----------------
Вроде простая задача, но mysql знаю плохо поэтому прошу проверить.
БД это таблица авторов, ими написаных книг и отношение соответственно один к многим.
Задача - вытащить список книг, которые написаны 3-мя со-авторами. То есть получить отчет «книга — количество соавторов» и отфильтровать те, у которых со-авторов меньше 3х.
мой вариант такой, насколько правильно и можно ли улучшить ?
CREATE TABLE author (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(255) NOT NULL);
CREATE TABLE book (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(255) NOT NULL);
CREATE TABLE author_book (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
author_id INT NOT NULL,
book_id INT NOT NULL);
SELECT * FROM book b INNER JOIN author_book ab ON b.id = ab.`book_id`
INNER JOIN author a ON a.id = ab.`author_id`
GROUP BY b.`name`
HAVING COUNT(*) = 3;
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
45338
|
|