Напишите запрос sql, чтобы выбрать имена студентов, которые посетили все лекции профессора «ДЖОН», но не любую лекцию профессора «ДЖОЗЕФ».
Я написал этот запрос, но он дает мне имя студента, который также читает лекцию от Джозефа.
select distinct s.studentname
from Student s,Attendance a,Lecture l
where s.StudentId=a.studid
and l.lecId = a.lectureid
and l.professor='JOHN'
and l.professor != 'JOSEPH';
Я делаю некоторую ошибку в приведенном выше запросе, но не могу ее идентифицировать.
вот структура таблицы
Таблица учеников
# StudentId, StudentName, Sex
'1', 'AMY', 'M'
'2', 'JACK', 'M'
'3', 'TONY', 'M'
'4', 'TARA', 'M'
'5', 'SARAH', 'F'
'6', 'TOM', 'F'
Таблица лекций
# LecId, Subject, Professor
1, MATH, JOHN
2, MATH, JOSEPH
3, PHY, MARK
4, PHY, MAX
5, PHY, JOHN
6, CHEM, JOHN
7, CHEM, JOSEPH
8, HISTORY, JOSEPH
Таблица посещаемости
# StudId, LectureId
'1', '1'
'1', '2'
'3', '1'
'2', '5'
'2', '6'
'3', '4'
'1', '6'
'4', '5'
'5', '1'
'5', '2'
'1', '3'
'1', '4'
'1', '5'
'1', '6'