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

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

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

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

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

textual
Листинг программы
  1. SELECT familiya FROM polzovat AS p
  2. JOIN vidanie_knigi AS vk ON p.id_polz = vk.id_polz
  3. GROUP BY familiya
  4. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы