Zur Boardunity Forenstartseite
  #1  
Alt 29.04.2005, 14:31
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639

LEFT JOIN macht Probleme


Huhu Leute!

Ich bin am verzweifeln :/

Gegeben ist folgende Query:
PHP-Code:
$zustand $db->query("SELECT zu.*, co.*,
                         count(co.contentid) AS numbercontent
                         FROM zustand AS zu 
                         LEFT JOIN content AS co 
                         ON (co.zustand = zu.zustandid)
                         WHERE co.categoryid != '0'
                         GROUP BY zu.zustandname
                         ORDER BY numbercontent DESC"
); 

Folgendes Problem:
numbercontent gibt an wieviele Inhalte (content) zu jedem Zustand (zustand) vorhanden sind.
Normalerweise ergibt dies eine Liste aller Zustände mit einer Zahl dahinter.
In meinem Beispiel sind es 6 Zustände und hinter jedem Zustand steht eine 1 da dort nur ein Inhalt jeweils hinterlegt ist.

Jetzt will ich aber alle Inhalte nicht berücksichtigen deren categoryid gleich 0 ist da diese was besonderes sind.

Die obige Query macht nun aber folgendes: Sie grenzt alle Inhalte aus deren categoryid gleich 0 ist, kürzt aber gleichzeitig die Liste der Zustände sodass aus der Liste mit ehemals 6 Einträgen eine kleine Liste mit nur 2 Einträgen geworden ist. (4 Inhalte haben die categoryid 0 )


Wie kann ich es nun erreichen, dass alle Inhalte deren categoryid gleich 0 ist nicht bei den Zahlen berücksichtigt werden ohne das die Liste der Zustände schrumpft?

Bei Zuständen die keinen Inhalt haben soll eine 0 stehen, die Query da oben löscht diese Zustände aber komplett raus
  #2  
Alt 04.05.2005, 12:37
Benutzerbild von Xenon
vBulletin.org Admin
 
Registriert seit: 09.2003
Ort: Bayern
Beiträge: 197
bin mir jetzt zwar ned sicher, ob ich dich verstehe, aber wenn cih das verstanden habe was du willst sollte es das hier machen:

PHP-Code:
 $zustand $db->query("SELECT zu.*, co.*,
                         SUM(IF(co.categoryid != '0', 1, 0)) AS numbercontent
                         FROM zustand AS zu
                         LEFT JOIN content AS co
                         ON (co.zustand = zu.zustandid)
                         GROUP BY zu.zustandname
                         ORDER BY numbercontent DESC"
); 

__________________
Stefan Käser
Administrator von www.vbulletin.org

Das Publikum ist so einfältig, lieber das Neue als das Gute zu lesen.
Arthur Schopenhauer
Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MediaWiki - Probleme nach der Installation exe Blog, CMS, Wiki und Sonstige 2 04.03.2004 21:11
Probleme mit WBB2 molly Forensoftware 2 18.02.2004 13:56
Probleme mit dem vBulletin 2.3.X Frederic Schneider Forensoftware 12 12.08.2003 22:41






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25