2016-03-11 4 views
0

Я пытаюсь изменить эту инструкцию Transact SQL для использования предложения NOT EXISTS вместо NOT IN. Я использовал поисковую систему, и с трудом применяю примеры, которые я нашел.Transact SQL - использование предложения NOT EXISTS вместо NOT IN

SELECT StudentId 
FROM Students 
WHERE School NOT IN (SELECT School FROM ClosedSchools) 

ответ

0

Если оба Students и ClosedSchools имеют SchoolId поле:

SELECT StudentId 
FROM Students stu 
WHERE NOT EXISTS (
    SELECT School 
    FROM ClosedSchools clo 
    WHERE clo.SchoolId = stu.SchoolId); 
0
SELECT StudentId 
FROM Students AS a 
WHERE NOT EXISTS (SELECT School 
        FROM ClosedSchools AS b 
        WHERE a.School = b.School) 
0
SELECT s.StudentId 
    FROM Students s 
WHERE NOT EXISTS (SELECT 1 
         FROM ClosedSchools 
        where ClosedSchools.School = s.School 
       ) 

или

SELECT s.StudentId 
    FROM Students s 
    LEFT JOIN ClosedSchools 
     on ClosedSchools.School = s.School 
WHERE ClosedSchools.School is null; 
Смежные вопросы