Создание запросов - MySQL
Формулировка задачи:
Добрый вечер, товарищи! У меня возникла трудность с написанием этих двух запросах в MYSQL на phpadmin.
Найти коллекции, в которых имеется максимальное число картин определенного жанра.
Найти такие жанры, которые присутствуют в каждой коллекции.
Прилагаю скриншоты созданной БД. Никак не могу сообразить как же это сделать...
EDR диаграмма есть, если она будет нужна.
Решение задачи: «Создание запросов»
textual
Листинг программы
SELECT Janr FROM ( SELECT Janr, COUNT(*) AS collections_num FROM ( SELECT Janr, `ID kollekcii` FROM Images GROUP BY Janr, `ID kollekcii` ) AS t1 GROUP BY Janr ) AS t2 WHERE collections_num = (SELECT COUNT(*) FROM Collections)
Объяснение кода листинга программы
В этом коде выполняется запрос SELECT для выборки значения столбца Janr
из таблицы, которая называется Images
.
Вот список действий, которые выполняются в этом коде:
- Создается подзапрос (SELECT Janr, COUNT(*) AS collections_num FROM (SELECT Janr,
ID kollekcii
FROM Images GROUP BY Janr,ID kollekcii
) AS t1 GROUP BY Janr), который сначала группирует изображения поJanr
иID kollekcii
, а затем считает количество коллекций для каждогоJanr
. - Результат этого подзапроса (который представляет собой список
Janr
и количество коллекций для каждого из них) сохраняется в таблице временных данных с именемt1
. - Затем выполняется еще один подзапрос (SELECT COUNT(*) FROM Collections), который считает общее количество коллекций в базе данных.
- Результат этого подзапроса сохраняется в переменной
collections_num
. - Основной запрос (SELECT Janr FROM (SELECT Janr, COUNT() AS collections_num FROM (SELECT Janr,
ID kollekcii
FROM Images GROUP BY Janr,ID kollekcii
) AS t1 GROUP BY Janr) AS t2 WHERE collections_num = (SELECT COUNT() FROM Collections)) выбирает значения столбцаJanr
из таблицыt2
, которая была создана во временной переменнойt1
. - В итоговом результате будет выбран
Janr
, у которого количество коллекций равно общему количеству коллекций в базе данных.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д