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

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

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

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

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

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

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

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

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


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

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

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