Я пытаюсь вывести всех студентов, которые не имеют оценок по «Программированию АНБ».Этот же запрос с «IN» вместо «NOT IN» отлично работает для студентов, которые имеют оценку в лекции по «NSA-программированию»,
, но когда я пытаюсь инвертировать его с помощью запроса «NOT IN», выводятся всестуденты, а теперь только те, кто не имеет оценки в этой лекции.
SELECT oc_students.name, oc_students.last_name
FROM oc_students
INNER JOIN oc_grades ON oc_students.id_students=oc_grades.id_students
WHERE oc_grades.id_lecture
NOT IN (SELECT oc_lecturesid_lecture FROM oc_lectures WHERE lecture_name='NSA programming');
Не уверен, что мое понимание «НЕ В» и «В» неверно, но из того, что я могу сказать, это должно бытьработаю так, как задумано, поскольку я просто поменяю местами оператор IN.
Если кто-нибудь скажет мне, почему это не работает, и, возможно, покажет мне правильный способ сделать это, что было бы здорово.