在某学习网站上看到的课后练习题,经过自己的查询和调试终于找到了正确的方法,记录下来方便后面的学习;
在此有三个表格分别是:employee,project,department,表格内容如下图,
1、使用连接查询的方式,查询出各员工所在部门的人数与对应的工程数目,工程数命名为 count_project。(连接3个表,并使用COUNT内置函数):
MySQL代码如下
(先以查询id=1,即Tom的为例):
如上表,由表employee中可知Tom所在的部门为dpt4,由表department可知dpt4部门有15个人,最后由表project可知dpt参与了两个工程,分别为proj_c、proj_e,下面的查询可以看到;
查询所有人时,只需分组查询即可,如下(inner join 中的inner可有可无):
此外,还可以增加一个group_concat函数来分组统计项目名称,代码如下:
对于上面的连接查询,自己在做一些面试题的时候又总结了一种比较容易明白的表达方法:如图
可以看到,查询的结果是一样的,没有最好的方法,只有适合的方法;贴出来和大家一起交流吧
个人能力有限, 以上如有错误之处,请各位大神多指正,谢谢!