Получить список пользователей. Взявших более 1, но менее 3 книг - MySQL

Узнай цену своей работы

Формулировка задачи:

С использованием SQL создать таблицы для отношения Пользователи (фамилия, код_пользователя), Выданные книги (код_пользователя, дата_выдачи, код_книги). Получить список пользователей. Взявших более 1, но менее 3 книг. Созданные таблицы:
create table polzovat(
id int not null auto_increment,
familiya char(30),
primary key (id));
 
create table vidanie_knigi(
id_knigi int not null auto_increment,
id_polz int,
data_vidachi date,
primary key (id_knigi),
foreign key (id_polz) references polzovat(id));
Пыталась сделать так, но сравнивает не количество, а сам номер
select id_polz, count(id_polz) from vidanie_knigi
group by id_polz
having id_polz > 1 and id_polz < 3;

Решение задачи: «Получить список пользователей. Взявших более 1, но менее 3 книг»

textual
Листинг программы
SELECT familiya FROM polzovat AS p
JOIN vidanie_knigi AS vk ON p.id_polz = vk.id_polz
GROUP BY familiya
HAVING COUNT(id_knigi) > 1 AND COUNT(id_knigi) < 3;

Объяснение кода листинга программы

В этом коде:

  1. SELECT — это команда для выбора данных из базы данных.
  2. familiya — это название переменной, которая будет содержать фамилию пользователя.
  3. FROM polzovat — это указание, откуда нужно брать данные. Здесь мы указываем таблицу polzovat.
  4. JOIN vidanie_knigi AS vk ON p.id_polz = vk.id_polz — это оператор объединения (JOIN), который позволяет объединить две таблицы по полю id_polz. В данном случае мы объединяем таблицу polzovat и таблицу vidanie_knigi. Мы также используем псевдоним vk для таблицы vidanie_knigi, чтобы не путать её с другими таблицами в запросе.
  5. GROUP BY familiya — это указание, что результаты запроса должны быть сгруппированы по значению переменной familiya.
  6. HAVING COUNT(id_knigi) > 1 AND COUNT(id_knigi) < 3 — это условие, которое применяется к каждой группе результатов. Здесь мы проверяем, что количество книг, взятых пользователем, больше 1 и меньше 3.
  7. ; — это конец команды. В результате выполнения этого кода будет получен список фамилий пользователей, которые взяли более 1, но менее 3 книг.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы