Драгомир Бутулисов
Оракул
(86592)
3 года назад
Зачем джойн? Вместо него вот:
WHERE Students.Id IS NOT NULL AND Students.Id NOT IN (SELECT DISTINCT S_Cards.Id_Student FROM S_Cards)
Если уверен что в поле Students.Id не может быть НУЛЛ то можно опустить проверку на нулл.
myodo.ruМудрец (12806)
3 года назад
join в общем случае быстрее, потому как выполняется параллельно, в отличие от сабселекта.
Написать функцию, возвращающую количество студентов, которые не брали книги.
Перед тем как создать функцию я сначала пишу запрос а потом кидаю его в функцию, так вот
Я подумал что для вывода тех студентов которые не брали книги можно сделать так
SELECT Students.Id, Students.FirstName, Students.LastName
FROM Students
JOIN S_Cards ON S_Cards.Id_Student != Students.Id
(Students - таблица студентов
S_Cards - таблица содержащая список студентов и взятые ими книги)
Сделав так я получаю 322 строки, что я делаю не так?