0

我在 MS Access 数据库中有三个表。

  1. 学生(学生姓名、电子邮件)
    1. 课程(课程名称、费用)
    2. 注册(课程名称,学生姓名)

我现在想创建一个查询,可以向我显示每个学生以前没有上过的所有课程。这将允许我的注册经理追求他们进行更多的课程注册。

我怎样才能在 MS ACCESS 中轻松做到这一点?结果查询应该是:

詹姆斯|高级闪光| 詹姆斯|高级编辑| 阿德里安|基础编辑| 阿德里安|基本闪光| Adrian|高级闪光| 阿德里安|高级编辑|

(詹姆斯上过所有“基础”课程,而阿德里安没有上过“基础”和“高级”课程)

4

1 回答 1

0

在进行此类查询时,拥有一个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;
于 2013-05-24T17:51:31.687 回答