Cem: Ausgabe Problem, leere Feleder über left Join werden gezählt

Ich habe gerade einen Konten, den ich nicht lösen kann.

Ich Lösse über SELECT und einem LEFT JOIN eine Datenabfrage aus. Über SELECT holte ich mit die Kategorien und über LEFT JOIN die einzelnen Beiträge.

Anschließend Frage ich über rowCount() die Anzahl der Treffer ab, Alle klappt prima,:

Doch es soll vorkommen das es zu manchen Kategorien keine Beiträge gibt, was ja an sich kein Problem darstellt, doch bei meiner Ausgabe schon

kategorie titel inhalt

kat 1 NULL NULL kat 2 NULL NULL

Wie bekomme ich es hin das ich nur die Zeilen mit Inhalt zähle

  1. Hallo Cem,

    rowCount liefert die Anzahl der Zeilen, die die Query ermittelt hat.

    Wenn Du die Kategorien ohne Beträge nicht zählen willst, müsstest Du erstmal beantworten, ob du diese Zeilen überhaupt im Ergebnis haben willst.

    Wenn nein: Mach keinen LEFT JOIN, sondern einen INNER JOIN (INNER brauchst Du in der Query nicht hinschreiben, das ist der Default)

    Wenn ja: rowCount ist nicht das geeignete Mittel. Entweder zählst Du die Kategorien mit Inhalt, während Du das LEFT JOIN Ergebnis einliest, oder Du musst eine separate Abfrage machen, die nur die Kategorien mit Inhalt ermittelt (ich würde da einen COUNT(DISTINCT KategorieID) auf die Beträge Tabelle machen).

    Rolf

    --
    sumpsi - posui - obstruxi