这里有一个SQL的菜鸟。我正在尝试使用来自访问数据库的数据为我们的部门构建注册表单。这个想法是为每个学生打印一张表格,其中显示所有可用的课程,并且学生已经注册的课程旁边有复选标记。相关表格采用经典的多对多关系
学生(StudentID,FamilyName,GivenName等)
1, Bennett, Shane
2, Bradford, Alex
课程(CourseID,CourseName,Term,Year)
1, Level 1 Math, Winter, 2013
2, Level 1 English, Winter, 2013
3, Level 1 Bio, Winter, 2013
CoursesTaken(StudentID,CourseID)
1, 1
1, 3
2, 2
2, 3
我想要的表是:
注册(FamilyName,GivenName,CourseName,已注册)
Bennett, Shane, Level 1 Math, True
Bennett, Shane, Level 1 English, False
Bennett, Shane, Level 1 Bio, True
Bradford, Alex, Level 1 Math, False
Bradford, Alex, Level 1 English, True
Bradford, Alex, Level 1 Bio, True
我们每学期约有300名学生,每学期约有15个班级,所以我正在寻找一个300x15行的结果表,即每个学生的15个班级。
对我来说,更简单的方法是使用VBA中的DAO记录集简单地找到给定StudentID的所有CoursesTaken,然后使用VBA循环遍历表单并将报告字段设置为true或false。但是(几个小时前)我想可能在SQL中有更好的方法。我看着OUTER JOINS,但似乎结果并不完全是我正在寻找的。我离开这里了吗?