Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql/php:Beiträge anzeigen und zu jedem Beitrag alle Kommentare

Da Sie Ihre Datenbankstruktur nicht kennen, sollte sie in etwa so aussehen. Beachten Sie, dass Sie * ersetzen sollten Zeichen mit expliziteren Spaltenlisten, die Sie tatsächlich benötigen.

SELECT p.*, c.*, u.* FROM posts p
LEFT JOIN comments c ON c.post_id = p.id
LEFT JOIN users u ON u.id = p.author_id

Beachten Sie, dass es eine gute Idee ist, einige dieser Informationen zwischenzuspeichern, wenn Sie nur versuchen, Zählungen, Summen und ähnliches zu erhalten. Beispielsweise möchten Sie möglicherweise die Kommentaranzahl in der Beitragstabelle zwischenspeichern, anstatt sie bei jeder Abfrage zu zählen. Zählen und aktualisieren Sie die Kommentaranzahl nur, wenn Sie einen Kommentar hinzufügen/entfernen.

BEARBEITEN: Habe festgestellt, dass man jedem Kommentar auch Benutzerdaten anhängen möchte. Sie können denselben Tisch mehr als einmal beitreten, aber es wird hässlich. Dies könnte zu einer sehr teuren Abfrage werden. Ich füge auch ein Beispiel für Alias-Spalten bei, damit es weniger verwirrend ist:

SELECT p.*, c.*, u.name as post_author, u2.name as comment_author FROM posts p
LEFT JOIN comments c ON c.post_id = p.id
LEFT JOIN users u ON u.id = p.author_id
LEFT JOIN users u2 ON u2.id = c.author_id