SQL

SQL 知识量:22 - 44 - 129

13.3 带聚集函数的联结><

使用带聚集函数的联结- 13.3.1 -

可以使用带聚集函数的联结,来增强查询的功能。例如:查询所有学生的信息和选课数量。

select s.*,count(c.id_lesson) as number 
from student as s 
left outer join course as c 
on s.id=c.id_student 
group by s.id 
order by s.id;

结果:

+----+--------+-----+--------+--------+
| id | name   | age | sex    | number |
+----+--------+-----+--------+--------+
|  1 | Susan  |  11 | female |      2 |
|  2 | Jame   |  12 | male   |      2 |
|  3 | Bob    |  11 | male   |      1 |
|  4 | Robot  |  10 | male   |      3 |
|  5 | Jen    |  11 | female |      2 |
|  6 | Toney  |  10 | male   |      2 |
|  7 | Jack   |  13 | male   |      0 |
|  8 | Alice  |  10 | female |      0 |
|  9 | Bonnie |  11 | male   |      0 |
| 10 | Ella   |  12 | female |      0 |
+----+--------+-----+--------+--------+

以上查询中,通过count()函数对学生的选课数量进行了统计,通过左外联结,包含了没有选课的学生信息,即number列为0的学生信息。

联结的使用要点- 13.3.2 -

使用联结时需要注意的几点是:

  • 根据需要选择合适的联结类型。

  • 通过查看DBMS文档,确定正确的联结语法。

  • 使用联结时,一定要保证应用正确的联结条件,否则结果一定是不准确的。

  • 应该总是给出联结条件,否则结果永远是笛卡尔积。

  • 可以同时使用多个不同的联结类型,合成使用前或排除错误时,应当逐个分别测试它们是否正确有效。