Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
45338



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |