Count mit Abfrage verbinden?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Count mit Abfrage verbinden?

    Hi,


    vorweg schonmal:
    ich hab dir forensuche benützt und habe dort nix gefunden. google konnte mir bisher auch nicht helfen, bzw. verwirrt mich immer mehr :P

    Ich habe eine news-tabelle, eines user-tabelle, eine kategorien-tabelle und eine kommentare-tabelle.
    Nun möcht ich alle news mit dem jeweiligen autor, der jeweiligen kategorie auslessen lassen. Das ist auch kein Problem, das funktioniert mit diesem query:

    Code:
    SELECT 
    	news.ID AS "newsID",
    	news.Date,
    	news.Title,
    	news.Content,
    	categories.Name,
    	categories.Banner,
    	users.ID,
    	users.Nickname				
               FROM
    	news,
    	categories,
    	users
               WHERE
    	categories.ID = news.Category
    	AND
    	users.ID = news.Author
               GROUP BY news.ID
    Wenn ich nun aber auch noch die anzahl der zugehörigen Kommentare jeder einzelnen news zählen lassen möchte, dann verwende ich folgenden query:

    Code:
    SELECT 
    	news.ID AS "newsID",
    	news.Date,
    	news.Title,
    	news.Content,
    	categories.Name,
    	categories.Banner,
    	users.ID,
    	users.Nickname,
    	COUNT(newscomments.ID) AS "CommentsNumber"
               FROM
    	news,
    	categories,
    	users,
    	newscomments
               WHERE
    	categories.ID = news.Category
    	AND
    	users.ID = news.Author
    	AND
    	newscomments.News = news.ID
               GROUP BY news.ID
    Jetzt erhalte ich zwar die korrekte Anzahl der Kommentare, allerdings nur für den ersten Newseintrag, die nächsten werden nicht ausgelesen.
    Liegt das an dem 'Group by'?
    wenn ja, wie müsste es aussehen - oder ist es nicht möglich, die ausgabe mit dem zählen zu einem query zu verbinden?

    PS: sorry für di ekomische einrückung der querys....irgendwie klappt das nicht so, wie ich das will :P

  • #2
    also erstmal solltest Du immer anch allen single cols gruppieren.
    weiterhin benutzt Du einen auschliesslichen join, der nur Datensätze anzeigt wenn tatsächlich alle Tabellenverknüpfungen erfüllt sind, heisst wenn keine KOmmentare in der tabelle newscomments zu news da sind wird auch die news nicht mehr ausgegeben.

    nimm hier lieber einen left join o.ä.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Original geschrieben von MelloPie
      also erstmal solltest Du immer anch allen single cols gruppieren.
      weiterhin benutzt Du einen auschliesslichen join, der nur Datensätze anzeigt wenn tatsächlich alle Tabellenverknüpfungen erfüllt sind, heisst wenn keine KOmmentare in der tabelle newscomments zu news da sind wird auch die news nicht mehr ausgegeben.

      nimm hier lieber einen left join o.ä.

      ahhh...ok, danke.

      werd mich mal drum kümmern

      Kommentar

      Lädt...
      X