2 Tabellen, 3 Joins, count(), group

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

  • 2 Tabellen, 3 Joins, count(), group

    Hallo zusammen,

    ich habe 2 Tabellen:

    Tabelle "kats"

    katid
    bezeichnung

    Tabelle "articles"

    articleid
    inhalt
    online
    aktiv

    In der Tabelle "kats" stehen viele Kategorien. In der Tabelle stehen Artikel die entweder bei aktiv eine 0 (inaktiv) oder eine 1 (aktiv) UND "online" gleich einem Datum (Terminierung).

    Jetzt möchte ich mich mit einer SQL alle Kategorien mit der jeweiligen Anzahl an aktiven (also aktiv=1 and online <= CURDATE()) und inaktiven (also aktiv=0 or aktiv = 1 and online > curdate()) Artikel herausbekommen.

    Ich habs schon mit einer SQL und 3 JOINS versucht, aber hat nich ganz hingehauen:

    PHP-Code:
    SELECT 
       count
    b.articelid) AS aktive,
       
    countc.articelid) AS inaktive
    FROM kats 
    AS a
    LEFT JOIN articles 
    AS b
    ON b
    .aktiv =AND b.online <= curdate() AND a.katid b.katid
    LEFT JOIN articles 
    AS c on c.aktiv '' AND a.katid c.katid OR c.online curdate() AND c.aktiv AND c.katid a.katid
    GROUP BY a
    .katid 
    Irgendwie kommen da bei einer Kategorie 220 bei aktive und inaktive raus, obwohl es insgesamt nur 32 Artikel gibt. Davon sind gerade mal 22 aktiv.

    Bei einer anderen Kategorie sind es bei ingesamt 24 Artikel jeweils 143 bei aktive und inaktive, obwohl nur 11 Artikel aktiv sind.

    Weiss jemand woran das liegen könnte?

    Sonnige Grüße..

  • #2
    Re: 2 Tabellen, 3 Joins, count(), group

    hm ... vielleicht besser Sub-Selects?!

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar

    Lädt...
    X