Ich habe eine Datenbank in MySQL. Die Datenbank enthält drei Tabellen wie "Schema", "Projekt", "Schema_Projekt". Die Hauptentitäten sind Schema, Projekt und ich verwende das Schema_Projekt, um die Beziehung "Viele zu Viele" zwischen Schema und Projekt herzustellen. Die folgenden Tabellen sind Felder und Daten

------scheme----------------------
schemeid    scheme_name    
   1         DWSS
   2         Food and sec
   3         DRM
   4         VST
------------------------------------

Ein anderer Tisch

-------project----------------------
projectid    project_name
   1          WASH
   2          WHH
   3          SSS
------------------------------------

Ein anderer Tisch

----------scheme_project------------

id      scheme_id        projectid

1           1               2
2           1               1
3           2               1
4           3               2
5           4               1
------------------------------------

Jetzt brauche ich eine Abfrage, um die Gesamtzahl der Projekte für alle Schemata zu ermitteln. Ich habe ein Problem, wenn ich Projectid zähle. Es zeigt mir 5, aber tatsächlich sind die Projekte in diesem Fall 2. jemand hilft bitte.

0
Navxxi 5 Jän. 2016 im 10:14

2 Antworten

Sie können group by projectid wie folgt

select scheme_id, count(*) as total_projects 
from scheme_project
group by projectid
0
AnkiiG 5 Jän. 2016 im 07:20

Sie müssen GROUP BY folgendermaßen verwenden:

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

Dies gibt Ihnen zurück, wie viele projects in einem scheme aufgeführt sind.

0
devpro 5 Jän. 2016 im 07:20