Huhu,
da ich neu bin, möchte ich mich der Runde kurz vorstellen:
Ich heiße JudGer und habe MySQL-Probleme :wink:
Mein Problem ist folgendes:
Ich habe 2 Tabellen: posts und comments
Vereinfacht sehen diese so aus
Code:
posts
+-----+-----------------------+
| id | titel |
+-----+-----------------------+
comments
+----+-----------+--------------------+
| id | post_id | titel |
+----+-----------+--------------------+
Ich möchte eine Übersichtsseite der Posts erstellen und dabei anzeigen lassen, wie viele Kommentare bereits existieren.
Dafür habe ich folgende Abfrage geschrieben:
Code:
SELECT posts.titel,
COUNT(comments.id) AS anzahl
FROM posts
LEFT JOIN comments
ON posts.id=comments.post_id
GROUP BY comments.post_id
Das funktioniert relativ gut. Dort wo Kommentare vorhanden sind, wird die korrekte Anzahl angezeigt.
Das Problem sind die Posts ohne Kommentare. Hier wird nur der oberste zurückgegeben und der Rest nicht.
Sollte LEFT JOIN nicht die kompletten Daten der linken Tabelle zurückliefern und NULL sofern kein Datensatz der zweiten Tabelle passt? Das macht diese Abfrage nur bei dem ersten Post mit 0 Kommentaren. Alle anderen werden nicht zurückgegeben.
LG
JudGer