select count from multiple tables(多表计数查询)

3 篇文章 0 订阅
1 篇文章 0 订阅

今天在实验楼上面学习sql语句,觉得好有成就感。卡在作业题目上面卡了好久。
题目是这样:

使用连接查询的方式,查询出**各员工所在部门的人数与工程数**,工程数命名为count_project。(连接3个表,并使用COUNT内置函数)

做了很多尝试,列出表的内容等等。
具体尝试内容可以查看这里:https://www.shiyanlou.com/courses/reports/549775
最终在网上找到了答案:http://goobbe.com/questions/5113072/mysql-multiple-count-from-multiple-tables-with-left-join
撒花!做出来了好开心!

sql语句如下:

SELECT department.dpt_name, 
COUNT(DISTINCT project.proj_name) AS 'count_project',
COUNT(DISTINCT employee.name) AS 'count_people'
FROM department
LEFT JOIN project
ON project.of_dpt=department.dpt_name
LEFT JOIN employee
ON employee.in_dpt=department.dpt_name
GROUP BY department.dpt_name;

显示的结果:

mysql> SELECT department.dpt_name, 
    -> COUNT(DISTINCT project.proj_name) AS 'count_project',
    -> COUNT(DISTINCT employee.name) AS 'count_people'
    -> FROM department
    -> LEFT JOIN project
    -> ON project.of_dpt=department.dpt_name
    -> LEFT JOIN employee
    -> ON employee.in_dpt=department.dpt_name
    -> GROUP BY department.dpt_name
    -> ;
+----------+---------------+--------------+
| dpt_name | count_project | count_people |
+----------+---------------+--------------+
| dpt1     |             1 |            3 |
| dpt2     |             2 |            4 |
| dpt3     |             1 |            3 |
| dpt4     |             2 |            2 |
+----------+---------------+--------------+
4 rows in set (0.00 sec)

继续加油咯!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值