gpt4 book ai didi

mysql - 带连接的 Count(*)

转载 作者:搜寻专家 更新时间:2023-10-30 20:10:41 24 4
gpt4 key购买 nike

这可能非常简单,但出于某种原因,我对此一片空白..

我想连接两个表并获取一个表中某列在另一个表中的总出现次数。 表1

id | company
------------
1 | companyA
2 | companyB
3 | companyC


Table2

id | company_id
------------
1 | 2
2 | 2
3 | 1
4 | 2
5 | 3

结果应该是:

company | count(*)
------------------
companyA| 1
companyB| 3
companyC| 1

我似乎无法正确计算计数部分。我在想它会是这样的:

SELECT Table1.company, count(*)
FROM Table1 JOIN Table2 ON
Table1.id = Table2.company_id
GROUP BY Table1.company;

修改:问题实际上是公司A和公司B正确出现,但没有显示公司C。我仔细检查并仔细检查了 companyC 的字段中是否存在匹配项。

最佳答案

您加入的应该是 Table2.company_id不是 Table2.id

SELECT  Table1.company, count(*)
FROM Table1
INNER JOIN Table2
ON Table1.id = Table2.company_id -- <<== here
GROUP BY Table1.company;

您必须在 tablecompany 列上定义一个 INDEX(可能是唯一的)以获得更快的性能,因为您将其与 company

分组

更新 1

SELECT  Table1.company, count(Table2.company_id)
FROM Table1
LEFT JOIN Table2
ON Table1.id = Table2.company_id -- <<== here
GROUP BY Table1.company;

关于mysql - 带连接的 Count(*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14450903/

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