之前写过一篇《对sql中left join、right join、inner join比较》的文章,也算是对左、右链接一个比较浅显的认识,今天再写一下对他们更深一层次的理解,也是接着上一篇博客《case when的使用》中介绍的业务拓展后所学、所得!
上一篇文章实现了对学生表中所有男女生人数的统计,之后有需要完成对他们所属班级的信息的查询,在原来的基础上加入了group by即可
表:
sql语句:
SELECT
classname,
SUM(
CASE sex
WHEN '男' THEN
1
ELSE
0
END
) AS female,
SUM(
CASE sex
WHEN '女' THEN
1
ELSE
0
END
) AS male
FROM
student
GROUP BY
className
查询结果:
然后,又需要完成对这些班级所属年级的一个查询,由于学生(student)和机构(institution)是不同的两张表,要想完成对年级信息的查询必须要和机构表的连接查询,只需要把刚刚查询的结果看做另外一张表和institution表左连接即可查询到所有需要的信息。
为什么要写这篇文章呢,是因为之前一直以为左右连接是针对于两个表之间的,直到完成了此次的连接查询才认识到左、右连接是不局限于表的,只要有得到的表结构均可以完成他们之间的左右连接!