Оператор SQL, который показывает курсы, которые ранее не проходили учащиеся
У меня есть три таблицы в базе данных MS Access.
- Студенты (имя студента, электронная почта)
- Курсы (Название курса, Стоимость)
- Регистрация (название курса, имя студента)
Теперь я хочу создать Запрос, который может показать мне все классы, которые каждый ученик НЕ БЫЛ раньше. Это позволит моему Менеджеру регистрации продолжить их, чтобы выполнить больше регистрации класса.
Как я могу легко сделать это в MS ACCESS? Результирующий запрос должен быть:
Джеймс |Advanced Flash| Джеймс | Расширенное редактирование | Адриан | Базовое редактирование | Адриан | Базовая вспышка | Адриан | Расширенный Flash | Адриан | Расширенное редактирование |
(Джеймс взял все "базовые" классы, в то время как еще Адриан не взял "базовые" и "продвинутые" классы)
1 ответ
Делая этот тип запроса, это помогает иметь driver
стол, в котором есть все комбинации студентов и курсов. Затем присоедините это к регистрациям и выберите строки, в которых нет совпадений:
select driver.*
from (select s.StudentName, c.CourseName
from Students as s,
Courses as c
) as driver left join
Registration as r
on r.StudentName = driver.StudentName and
r.CourseName = driver.CourseName
where r.StudentName is NULL;