У меня есть база данных со следующими таблицами: Студенты, Классы, link_student_class.Где Студенты содержат информацию о зарегистрированных студентах, а классы содержат информацию о классах.Поскольку каждый ученик может посещать несколько классов, и каждый класс может посещать несколько учеников, я добавил таблицу связей для сопоставления учеников и классов.
Linking-Table
id | student_id | class_id
1 1 1
2 1 2
3 2 1
4 3 3
В этой таблице и student_id, и class_id будут появляться несколько раз!Что я ищу, так это SQL-Query, который возвращает информацию обо всех учениках (например, в «SELECT * FROM учеников»), которые не посещают определенный класс (заданный его идентификатором).
Я пыталсяследующий SQL-запрос
SELECT * FROM `students`
LEFT JOIN(
SELECT * FROM link_student_class
WHERE class_id = $class_id
)
link_student_class ON link_student_class.student_id = students.student_id
, где $ class_id - это идентификатор класса, учеников которого я хочу исключить.
В возвращаемом объекте ученики, которых я хочу включить, и те, кого я хочудля исключения различаются по значению столбца «class_id».Те, которые должны быть включены, имеют значение «NULL», тогда как те, которые я хочу исключить, имеют числовое значение.