4.2.3 使用“查找不匹配项查询向导”创建查询
“查找不匹配项查询向导”创建的查询指的是在两个相关表中,查询没有相同记录的数据。
【例4.6】利用“查找不匹配项查询向导”,将没有选课的学生基本信息(“学号”“姓名”“性别”“班级名称”)显示出来,该查询以“查询向导—没有选课的学生”名称保存。
分析:查找“选课成绩”表中没有相应信息但“学生”表中存在信息的学生。可以理解为,该学生注册了基本信息,但没有选课,即没有成绩记录,该生的“学号”在“选课成绩”表中不存在。具体操作步骤如下:
(1)选择查找不匹配项查询向导。在打开的数据库窗体中,单击“创建”选项卡“查询”组中的“查询向导”按钮,在弹出的对话框中选择“查找不匹配项查询向导”选项,如图4.21所示。

图4.21 选择“查询向导—查找不匹配项查询向导”
(2)进入向导的第一步设置:所建查询将列出下面所选表中的记录,并且那些记录在下一步所选的表中没有相关记录。该设置要求选择“主动表”。本例中的“主动表”是“学生”表,“被动表”是“选课成绩”表。具体设置如图4.22所示。
单击“下一步”按钮,进入向导的第二步设置。
(3)进入向导的第二步设置:确定哪张表或查询包含相关记录,即选择“被动表”,如图4.23所示。然后单击“下一步”按钮。

图4.22 选择“主动表”

图4.23 选择“被动表”
(4)进入向导的第三步设置:确定两张表中都有的信息。本例中,“学生”表和“选课成绩”表都有的信息是“学号”,两张表比较的也是“学号”。所以选择“学号”,通常情况下系统会给一个默认值,该值的依据是两张表之间的关系,如图4.24所示。然后单击“下一步”按钮。
(5)进入向导的第四步设置:“选择查询结果所需字段”。按照题目要求,设置如图4.25所示。然后单击“下一步”按钮。

图4.24 选择“两张表都有的信息”

图4.25 选择“查询结果所需字段”
(6)进入向导的第五步设置:查询名称和打开方式设置。保存名称为“查询向导—没有成绩的学生”。查询运行后结果为空。
如果查询结果为空,原因可能有两种:一种是查询设置错误;另一种是没有符合查询要求的信息。该例属于第二种。为了验证该查询的正确性,先关闭查询结果浏览窗口,在“学生”表中添加两个自拟的学生信息,再次运行查询,结果如图4.26所示。
思考:创建查询,将没有学生选课的课程基本信息显示出来,包括“课程号”“课程名”“学分”。查询运行结果如图4.27所示。

图4.26 “查询向导—没有成绩的学生基本信息查询”查询运行结果

图4.27 “查询向导—没有学生选课的课程基本信息”查询运行结果