Group by - Problem ?

Arne Buchwald

Erfahrenes Mitglied
Hallo,

Ich brauche noch mal Rat zu der folgenden SQL-Anweisung:
Code:
Select f.forumid, f.threadnumber, f.postnumber, COUNT(t.threadid) as tidcount , COUNT(p.postid) as postcount from forum f
INNER JOIN thread t on t.fid = f.forumid
INNER JOIN post p on p.tid = t.threadid
GROUP BY f.forumid'
Diese gibt mir forumid, etc. zurück sowie tidcount und postcount. Jede enthalten die beiden letztgenannten Felder natürlich die gleichen Werte.
Wie muss die SQL-Anweisung modifiziert werden, so dass in tidcount die Anzahl der Themen und nicht die der Posts steht ?

Merci.
 
Servus!

Irgendwie verstehe ich deine Frage nicht ganz... kannst du sie vielleicht etwas umformulieren?

Bzw. nebenbei die (grobe) Tabellenstruktur angeben (nur die relevanten Felder) ... dann versuch ich mal mein Glück ;-)

Gruss Tom
 
Also, Tabellenstruktur ist eigentlich nicht nötig.

Was ich möchte: Ich speichere die Thread-/Post-Anzahlen der Tabellen thread und post extra für jedes Forum in der tabelle forum.

Tab.: forum
-> forumid
-> threadnumber
-> postnumber

Tab. thread
-> threadid
-> forumid

Tab. post
-> postid
-> threadid

z.B. gibt's 20 Datensätze in der Tabelle forum. Und jetzt müsste ich die oben gepostete SQL-Anweisung so abgeändert werden, dass

folgende Felder (korrekt) angezeigt werden:
-> forumid
-> threadcount (bisheriger, alter Wert)
-> postcount (bisheriger, alter Wert)
-> threadcount
-> postcount

D.h. ich möchte zu jedem aufgelistetem Forum die Anzahl der Themen sowie die Anzahl der Beiträge stehen haben.

Ich bin gerade mal wieder dabei, sämtlichen Quellcode zu überarbeiten und performanter umzuschreiben. Und die 3 Schleifen ineinander sind einfach zu viel :)
 
Hm, da werden im Moment nur die Threadzahlen ausgegeben, aber nicht die Postzahlen ... d.h. Anzahlvonthreadid & Anzahlvonpostid enthalten jeweils immer den gleichen Wert.
 
Servus!

Hab noch vergessen zu erwähnen, das "Abfrage2" diejenige ist, die das gewünschte Ergebnis zeigt ...

Gruss Tom
 

Neue Beiträge

Zurück