这可能很简单,但由于某些原因,我在这个上面留空了..
我想连接两个表,并在另一个表中的一个表中获取一个列的总出现次数。 表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.我经历过并仔细检查了公司C的字段中是否存在匹配。
答案 0 :(得分:4)
您要加入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;
您必须在INDEX
的{{1}}列上定义company
(可能是UNIQUE ),以便更快地发挥作用,因为您要将其与table
分组
更新1
company