C.3 多表查询

图C-3展示了某班级“学生信息”、“科目”和“成绩表”3张数据列表。

含义:根据约束条件,返回查询指定字段记录所有可能的组合。

语法:

SELECT{表名称}.字段FROM表1,表2,……表x {WHERE约束条件}

img501a

图C-3班 级成绩数据列表

多表查询的特点:

(1)在同一语句中,若需要查询的字段名称存在于多张表中,那么,此字段名称需要声明来源表,否则该字段可省略声明来源表。

(2)当查询涉及多张表关联时,需要注意使用约束条件,没有约束条件或约束条件设置不当,将可能出现笛卡尔积,从而导致数据虚增。

如果希望在如图C-3所示的“科目”和“成绩表”数据列表中,查询各科目的平均成绩及各科目任课老师的数据记录,可以使用以下SQL语句。

SELECT A.科目名称,A.任课老师,AVG(B.分数)AS平均分FROM [科目$]A,[成绩表$]B WHERE A.科目名称=B.科目GROUP BY A.科目名称,A.任课老师

设置“平均分”字段的数字格式为【数值】,【小数位数】为0,最终生成的数据透视表如图C-4所示。

img501b

图C-4科 目任课老师和科目平均分数据列表