Hallo zusammen,
ich habe ein Problem mit mehreren JOINS verbunden mit Aggregat-funktionen (hier: COUNT).
Hier mal ein einfaches Beispiel:
Ich habe 3 Tabellen: Eine Artikel-Tabelle mit Titel, eine View-Tabelle mit der Anzahl an Views des Artikels und eine dritte Kommentar-Tabelle (ist nur ein Beispiel, entspricht nicht meiner Struktur). Sagen wir, dass wir nur einen Artikel haben, 9 Views und 3 Kommentare.
Folgendes SQL-Script:
Das GROUP-By brauche ich, damit ich für jeden KOmmentar (falls es mehrere sind) alle Views richtig zurückgeliefert bekomme.
Das LEFT OUTER JOIN brauche ich, da nicht jeder Artikel einen Kommentar haben muss.
So, wenn wir nun 9 Views haben für einen Artikel mit 3 Kommentaren, dann liefert mir dieses SQL-Script jedoch die Zahl 27 für die Kommentare zurück. Das entsteht wohl durch die 9*3 (=27). Wenn ich einen vierten Kommentar einfüge, dann erhalte ich durch dieses Script die Zahl 36 für die Anzahl an Kommentaren zurückgeliefert.
Kann da jemand Licht ins Dunkel bringen?
Vielen Dank,
Eroli
ich habe ein Problem mit mehreren JOINS verbunden mit Aggregat-funktionen (hier: COUNT).
Hier mal ein einfaches Beispiel:
Ich habe 3 Tabellen: Eine Artikel-Tabelle mit Titel, eine View-Tabelle mit der Anzahl an Views des Artikels und eine dritte Kommentar-Tabelle (ist nur ein Beispiel, entspricht nicht meiner Struktur). Sagen wir, dass wir nur einen Artikel haben, 9 Views und 3 Kommentare.
Folgendes SQL-Script:
Code:
SELECT a.Title, v.Irgendwas, COUNT(k.PK_Kommentar) FROM artikel a
JOIN views v ON v.FK_Artikel = a.PK_Artikel
LEFT OUTER JOIN kommentare k ON k.FK_Artikel = a.PK_Artikel
GROUP BY v.FK_Artikel
Das GROUP-By brauche ich, damit ich für jeden KOmmentar (falls es mehrere sind) alle Views richtig zurückgeliefert bekomme.
Das LEFT OUTER JOIN brauche ich, da nicht jeder Artikel einen Kommentar haben muss.
So, wenn wir nun 9 Views haben für einen Artikel mit 3 Kommentaren, dann liefert mir dieses SQL-Script jedoch die Zahl 27 für die Kommentare zurück. Das entsteht wohl durch die 9*3 (=27). Wenn ich einen vierten Kommentar einfüge, dann erhalte ich durch dieses Script die Zahl 36 für die Anzahl an Kommentaren zurückgeliefert.
Kann da jemand Licht ins Dunkel bringen?
Vielen Dank,
Eroli