我在mysql中有一个数据库。该数据库包含三个表,例如" scheme"," project"," scheme_project。主要实体是方案,项目,我使用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。 任何人都可以帮忙。
答案 0 :(得分:1)
使用不同的
从yourtable中选择count(distinct projectid)
答案 1 :(得分:0)
您可以group by projectid
如下
select scheme_id, count(*) as total_projects
from scheme_project
group by projectid
答案 2 :(得分:0)
您需要使用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
这将返回projects
中列出的scheme
个。{/ p>