这里以实验楼的数据库来记录,如有侵犯实验楼权益,请联系本人,必定删除

在此感谢实验楼提供的免费教程 MySQL 基础课程_SQL - 实验楼

一、

表project employee

MySQL学习笔记2————基础篇记录-LMLPHP

任务:想要知道名为 "Tom" 的员工所在部门做了几个工程。

条件:员工信息储存在 employee 表中,但工程信息储存在 project 表中。

 SELECT of_dpt,COUNT(proj_name) AS count_project FROM project GROUP BY of_dpt
HAVING of_dpt IN
(SELECT in_dpt FROM employee WHERE name='Tom');

()里的SELECT语句返回的结果"dpt4"给HAVING of_dpt IN 使用,效果其实就是HAVING of_dpt IN 'dpt4'

HAVING 语句可用的条件和WHERE一样,不过HAVING 是用于分组后即对查询结果数据的筛选,而WHERE是用于查询时筛选

第一行代码中GROUP BY 是分组,类似于把of_dpt作为组长,然后查询的数据以of_dpt分组

如图,从project里查询of_dpt组的数据(组长dpt1、dpt2、dpt3、dpt4)中各组长proj_name的次数,然后在查询的结果里,再用HAVING 筛选出dpt4组长的数据

MySQL学习笔记2————基础篇记录-LMLPHP


二、

MySQL学习笔记2————基础篇记录-LMLPHP

MySQL学习笔记2————基础篇记录-LMLPHP

[图片来自实验楼shiyanlou.com]

05-11 18:31