Выбрать студентов, которые проходили все указанные курсы - MySQL

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

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

Доброго времени суток! Столкнулся с следующей задачей: необходимо выбрать всех студентов, которые прошли все указанные курсы. Свои догадки написал ниже, но данный запрос выбирает и тех студентов, которые прошли хотя бы один из указанных.
Листинг программы
  1. SELECT student.Id, student.FirstName, student.LastName, student.MiddleName FROM student
  2. INNER JOIN coursegroupe AS cg ON cg.IdCourse IN ( '045d4fdd-83ac-45d5-9c7b-cd8e9ce85bf6','e2b59d3c-9c1e-44f5-aa9c-190ce8f063b2')
  3. INNER JOIN groupestudent AS gs ON gs.IdGroupe = cg.Id
  4. WHERE student.Id = gs.IdStudent;

Решение задачи: «Выбрать студентов, которые проходили все указанные курсы»

textual
Листинг программы
  1. SELECT * FROM student s
  2. WHERE EXISTS(SELECT 1 FROM coursegroupe cg,groupestudent gs
  3.              WHERE gs.IdStudent = s.Id
  4.              AND   cg.Id = gs.IdGroupe
  5.              AND   cg.IdCourse = '045d4fdd-83ac-45d5-9c7b-cd8e9ce85bf6')
  6. AND EXISTS(SELECT 1 FROM coursegroupe cg,groupestudent gs
  7.              WHERE gs.IdStudent = s.Id
  8.              AND   cg.Id = gs.IdGroupe
  9.              AND   cg.IdCourse = 'e2b59d3c-9c1e-44f5-aa9c-190ce8f063b2')

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

Код на языке SQL выбирает всех студентов из таблицы student, которые проходили курсы с идентификаторами '045d4fdd-83ac-45d5-9c7b-cd8e9ce85bf6' и 'e2b59d3c-9c1e-44f5-aa9c-190ce8f063b2'.

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


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

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

8   голосов , оценка 3.75 из 5

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

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

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