Выбрать студентов, которые проходили все указанные курсы - 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'.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д