我很难搞清楚下面的mysql查询是如何工作的
SELECT dp.name, COUNT(em.dp) as employees
FROM dp LEFT JOIN em ON dp.name=em.dp
GROUP BY dp.name
HAVING COUNT(em.dp) = 2;它只是显示了哪些部门有2名员工。以下是这两张表:
em
----
id
full_name
dp
dp
----
id
name这是我输入的几个条目。
INSERT INTO em (full_name, dp) VALUES ('Chris', 'ENG'), ('Steve', 'HR'), ('Mike', 'ACC'), ('Marvin', 'ACC');
INSERT INTO dp (name) VALUES ('ENG'), ('HR'), ('ACC');有人能用简单明了的方式解释一下上面的问题吗?比如先发生的事等。
发布于 2014-01-14 03:01:40
查询对所有部门(来自dp.name)进行分组,并返回该部门的员工数。
要可视化这一点,您可以从这两个表中提取一个包含所有列的表,这基本上就是您的联接。
然后,您可以从上面的表中一次清晰地提取每个部门名称,为每个部门创建一行(这是组所做的),并检查部门在第一个表中显示的次数(这是count函数)。
发布于 2014-01-14 03:28:48
您试过使用命令吗?您可以从mysql控制台访问它。
https://stackoverflow.com/questions/21105272
复制相似问题