Hallo,
ich hab eine Frage zur anwednung von Counts über mehrere Tabellen. Die Sache liegt wie folgt:
Ich habe 3 Tabellen:
Code:
Tabelle 1
id Daten...
1 zhn
2 sdfvb
3 cfgf
Code:
Tabelle 2
id id_tabelle1 Daten...
1 1 dfgh
2 3 jöpk
3 3 huhui
Code:
Tabelle 2
id id_tabelle1 Daten...
1 2 dfgh
2 3 jöpk
3 3 hjkhj
4 3 gzj
Nun wollte ich mittels eines Selects direkt die Tabelle eins abrufen und dazu jeweils die Anzahl der verbundenen Datensätze aus den anderen beiden Tabellen, welche sich auf tabelle1 beziehen.
versucht hab ich es damit:
SQL-Code:
SELECT DISTINCT (tabelle1.daten),
COUNT (tabelle2.id) AS tabelle2anzahl,
COUNT (tabelle3.id) AS tabelle3anzahl
FROM tabelle1 LEFT JOIN tabelle2 ON tabelle1.id = tabelle2.id_tabelle1
LEFT JOIN tabelle2 ON tabelle1.id = tabelle2.id_tabelle1 GROUP BY tabelle1.daten
Das liefert allerdings nur die richtigen Werte, wenn eines der beiden Count 0 zurückgibt.
Also für die ersten beiden Datensätze aus tabelle1 wird korrekt wiedergegeben.
Das Problem liegt im dritten, wenn beide Tabellen auf tabelle1 verweisen, werden die beiden Counts scheinbar addiert und zurückgegeben werden :
Code:
zhn 1 0 //stimmt
sdfvb 0 1 //stimmt
cfgf 6 6 //stimmt nicht, da es 2 und 3 heißen müsste.
Wie kann man dieses Problem nun umgehen?, sodass es möglichst noch eine einzelne Abfrage bleibt?
Johannes M.