• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Eventuell ein Join Problem

Gilles

Blogger
Ich muss mal wieder stören, da ich leider kein Profi bin, was das joinen von Tabellen angeht.
Eventuell ist es auch anders zu lösen.

Hier mal meine Problemstellung etwas anders umschrieben.

ich lasse mir mehrere News auslesen, welche Kommentare haben (oder auch nicht)

Nun möchte ich, dass der Link "Kommentare ansehen" nur erscheint, wenn es auch Kommentare für die News gibt.

Mein SQL-Statement sieht nun so aus (Funktioniert jedoch nicht richtig)

Code:
Select  `news`.`id`, `news`.`headline`, `news`.`text`, COUNT(`kommentar`.`id`) FROM `news` LEFT JOIN `kommentar` ON `news`.`id` = `kommentar`.`news_id`;

Im Endeffekt bekomme ich immer nur eine Zeile zurück. Irgend was stimmt da nicht.
Findet jemand meinen Fehler?

Vielen dank schonmal :)
 
Diese Abfrage ist korrekt und sollte auch mehr als eine Zeile zurück geben, wo hast du das getestet? Mit phpmyadmin?
 
Da fehlt eine Gruppierung, denke ich.

Code:
SELECT
        `news`.`id`,
        `news`.`headline`,
        `news`.`text`,
        IF(`kommentar`.`news_id` IS NULL,0,COUNT(*)) AS `kommentare`
FROM
        `news`
    LEFT JOIN
        `kommentar`
    ON
        `news`.`id` = `kommentar`.`news_id`
GROUP BY
        `news`.`id`

Bin mir nicht völlig sicher, dass die IF-Bedingung passt.
 
Ah ich danke euch viiielmals. Es war das Group By was gefehlt hat :)
Nun spuckt er mir mehr als einen beitrag aus :D

Vielen vielen Dank =)
 
Zurück
Oben