Frank (no reg): Count in Query

Beitrag lesen

Hi,

nach COUNT(b.NewsId) möchtest du nicht gruppieren. Denn COUNT(*) ist bereits eine Aggregatfunktion, deren Ausgabewert du verwenden möchtest.

Das GROUP BY A.thema, A.hits, A.kommentare, B.kommentar, B.userid, C.username bewirkt, das COUNT(...) dann alle Vorkommen in der Ergebnismenge zählt bei denen A.thema, A.hits, A.kommentare, B.kommentar, B.userid identisch sind.

Das würde aber bei dir wohl immer 1 ergeben (weil du offensichlich den Kommentar ansich auch mit ausgibst.

Vielleicht möchtest du einfach eine korrellierende Unterabfrage verwenden, keine Ahnung ob dieses MySQL schon so etwas kann:

  
SELECT  
   outer.feldA,  
   outer.feldB,  
   outer.feldC,  
   (SELECT COUNT(*)  
    FROM tabelle1 AS inner  
    WHERE inner.feldA = outer.feldA  
    AND inner.feldB = outer.feldB) AS CountOverAB  
FROM tabelle1 AS outer  

Probier's aus undso!

Ciao, Frank