jaegerschnitzel
Mitglied
MySQL Verbesserungsvorschlag bei LEFT JOIN Abfrage
Ich habe zwei Tabellen:
_news
Nun will ich 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:
Wollte aber fragen, ob es da ne bessere Möglichkeit gibt.
Evtl. könnte man die Kommentare nur auslesen wenn welche existieren oder sowas. Bin für alle Anregungen offen!
Ich habe zwei Tabellen:
_news
_commentsid
id_user
datum
titel
news
id
id_news
kommentar
datum
Nun will ich 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.news, COUNT(c.comment) 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.
Evtl. könnte man die Kommentare nur auslesen wenn welche existieren oder sowas. Bin für alle Anregungen offen!
Zuletzt bearbeitet: