gpt4 book ai didi

mysql - 向我解释一个 MySQL 查询

转载 作者:行者123 更新时间:2023-11-30 00:49:27 26 4
gpt4 key购买 nike

我很难弄清楚以下 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');

有人可以简单明了地解释一下上述查询吗?比如首先发生的事情等等。

最佳答案

该查询对所有部门(来自 dp.name)进行分组,并返回该部门的员 worker 数。

为了形象化这一点,您可以绘制一个包含两个表中所有列的表,这本质上是您的 JOIN。

然后,您可以绘制第二个表,方法是从上表中一次明确地取出每个部门名称,并为每个部门创建一行(这就是 GROUP BY 的作用)并检查该部门出现的次数显示在第一个表中(这是计数函数)。

关于mysql - 向我解释一个 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com