Mohammed-cd7 Ответов: 1

Как выбрать с помощью соединений


привет,
у меня есть эта база данных в oracle:

ELEVES(NUM_ELEVE, NOM, PRENOM, DATE_NAISSANCE, POIDS, ANNEE)
COURS(NUM_COURS, NOM, NBHEURES, ANNEE)
PROFESSEURS(NUM_PROF, NOM, SPECIALITE, DATE_ENTREE, DER_PROM, SALAIRE_BASE, SALAIRE_ACTUEL)
АКТИВНОСТИ (УРОВНЯ,НЯМ , ОДЕТЬ)

RESULTATS(NUM_ELEVE, NUM_COURS, NOTE )
ЗАРЯДКА (NUM_PROF, NUM_COURS)
ACTIVITES_PRATIQUEES(NUM_ELEVE, NIVEAU, NOM)

Мне нужно выбрать имя "профессоров", которые "заряжают" все "курсы ""Анни" 2

Что я уже пробовал:

у меня нет решения.

CHill60

А что вы уже пробовали?

Mohammed-cd7

я выбираю имя "профессоров", которые "заряжают ""курс" Анни 2, но мне нужно только имя профессоров, которые "заряжают" все "курсы" Анни 2

1 Ответов

Рейтинг:
2

Peter Leow

Поскольку вы можете выбрать имена профессоров, которые преподают курс 2-го года, я предполагаю, что вы уже знаете, как SQL JOIN.
Если я правильно вас понял, вам нужны имена тех профессоров, которые преподают только 2-й год, то есть исключить любого, кто преподает другие годы, даже если он также преподает 2-й год. Псевдо sql код выглядит следующим образом:

SELECT professor_name
FROM multiple table join
WHERE NOT EXISTS(
  SELECT professor_name FROM multiple table join
  WHERE year = 1 and year = 3...
) AND year = 2

Вы можете использовать NOT IN. Гугл для какой-то справки в интернете.


Mohammed-cd7

Мне нужно имя "профессоров", которые "заряжают" все "курсы" Анни 2