我在mysql中有一个数据库。该数据库包含三个表,如"scheme"、"project"answers"scheme_project"。主要实体是scheme、project和我正在使用scheme_projects在scheme和project之间建立"多对多"关系。以下是表字段和数据
------scheme----------------------
schemeid scheme_name
1 DWSS
2 Food and sec
3 DRM
4 VST
------------------------------------
另一张表
-------project----------------------
projectid project_name
1 WASH
2 WHH
3 SSS
------------------------------------
另一张表
----------scheme_project------------
id scheme_id projectid
1 1 2
2 1 1
3 2 1
4 3 2
5 4 1
------------------------------------
所以现在我需要一个查询来找到所有方案的项目总数。我有一个问题,当我计算projectid时,它显示5,但实际上在这种情况下,项目是2。请任何人帮忙。
使用不同的
从表中选择计数(不同的项目ID)
您可以按照下面的方式group by projectid
select scheme_id, count(*) as total_projects
from scheme_project
group by projectid
您需要像这样使用GROUP BY
:
SELECT COUNT(*) as Total,p.project_name, s.scheme_name FROM scheme s
INNER JOIN scheme_project ON sp.scheme_id = s.schemeid
INNER JOIN project p ON p.projectid = sp.projectid
GROUP BY p.project_name, s.scheme_name
这将返回scheme
中列出的projects
数量。