jaegerschnitzel
Lt. Junior Grade
- Registriert
- Sep. 2006
- Beiträge
- 339
Ich will eine Liste mit meinen News ausgeben lassen. Zuerst habe ich mir ein Array mit allen News von der DB geholt und alle News in einer Schleife ausgeben lassen. Dann habe ich in der Schleife zu jeder News überprüft ob Kommentare existieren und wenn ja die Anzahl ausgeben lassen.
Nun wollte ich aber alles in einer Abfrage machen, da dies bei vielen News sicherlich schneller geht und auch DB-schonender ist.
Folgendes SQL-Statement habe ich nun entwickelt, welches auch funktioniert:
PHP:
"SELECT n.id, n.id_user, n.datum, n.titel, n.nachricht, n.kommentar, cat.name, COUNT(c.id_news) AS c_count
FROM _news n
LEFT JOIN _comments c ON n.id = c.id_news
GROUP BY n.id
ORDER BY n.datum DESC"
Wollte aber fragen, ob es da ne bessere Möglichkeit gibt.
Meine 2te Frage bezieht sich auf die Kategorien.
Da ich mehrere Kategorien pro News ermögliche, habe ich die Zwischentabelle _news_category erstellt.
Nun bekomme ich die Abfrage aber nicht mehr richtig hin. Die Anzahl der Kommentare stimmt nicht mehr und auch die Namen der Kategorien werden nicht richtig ausgelesen.
Wenn z.B. zwei Kategorien pro News vorliegen sollten beide ausgegeben werden. Das lässt sich wohl nur mit einer Unterabfrage lösen oder? Falls ja, wie genau?