Быстрый вопрос здесь.У меня есть БД с несколькими таблицами, немного, но они связаны ссылочными ключами.Вот моя проблема:
- Верните
sigil
курсов, которые еще не преподавались учителем по имени 'Velvet' , 'Moise'
Я могу легко написать запрос, ноКажется, я не могу найти правильную логику за этим.
Вот что я попробовал:
SELECT g.sigil
FROM GroupCourse g JOIN Professor p
ON g.profCode = p.profCode
WHERE p.name != 'Velvet' AND p.name != 'Moise'
Это работает так, как должно, но если у меня есть другие преподаватели, преподающие курс тожескажем, TRX1277
, он удалит только то, чему научили Velvet
и Moise
.Не все из них.Я хочу показать только тех, кого не учили эти 2.
Определение таблицы:
GroupCourse :
Primary keys : sigil, codeSession
sigil: CHAR
noGroup : INTEGER
sessionCode: INTEGER
profCode: CHAR
Профессор :
Primary key : profCode
profCode: VARCHAR
firstName: VARCHAR
lastName: VARCHAR
В настоящий момент я получаю это:
-------
SIGIL
-------
MGT1130
JPR6790
TRX1277
POU3333
Моисе не имеет зарегистрированных курсов.Но у Velvet есть 2. MGT1130 и POU3333.Дело в том, что немногие другие учителя тоже имеют такие курсы.Поэтому, почему мне нужно найти способ, чтобы это выглядело так:
-------
SIGIL
-------
JPR6790
TRX1277
Я знаю, что мне не хватает мелочи, но я не могу ее найти: (