я в настоящее время учится на финал, и один из исследуемых вопросов от предыдущего экзамена заключается в следующем:SQL набор разделение
У вас есть следующая схема:
Student (Snum
: целое число, Sname
: строка, Major
: строка, Class
: строка, Age
: строка)
курс (Cname
: строка, Meets_at
: время, Room
: строка, Fid
: Integer)
факультет (Fid
: Integer, Fname
: строка, Deptid
: целое число)
Поступил (Snum
: целое число, Cname
: целое число)
вопрос У меня возникли проблемы с является:
«Найдите имена всех преподавателей, которые учат в каждой комнате, что какой-либо класс соответствует«
Вот то, что я до сих пор:
SELECT DISTINCT(Fname)
FROM (FACULTY NATURAL JOIN COURSE AS C1), COURSE AS C2
WHERE C1.Room = C2.Room
GROUP BY Fname,C2.Cname
WHERE COUNT(C1.Room) = (SELECT COUNT(DISTINCT(Room))
FROM COURSE
WHERE Cname = C2.Cname);
Я думаю, что я нахожусь на правильном пути, но я не уверен, если это правильно. Любая помощь будет оценена!
Я считаю, что «*, где некоторый класс соответствует *» означает, что должно быть по крайней мере один студент поступил в таком классе, так что вам нужно будет использовать 'Enrolled' таблицу, а также. –
Я не уверен, что это необходимо; в этой схеме содержится всего 6 вопросов, и не все остальные вопросы используют все таблицы. –
Возможно, вы правы. –