Tidak mengetahui struktur database Anda, seharusnya terlihat seperti ini. Perhatikan bahwa Anda harus mengganti *
karakter dengan daftar kolom yang lebih eksplisit yang sebenarnya Anda butuhkan.
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
Perhatikan bahwa jika Anda hanya mencoba untuk mendapatkan jumlah, jumlah, dan hal-hal seperti itu, ada baiknya untuk menyimpan beberapa informasi itu dalam cache. Misalnya, Anda mungkin ingin men-cache jumlah komentar di tabel posting alih-alih menghitungnya setiap kueri. Hanya hitung dan perbarui jumlah komentar saat menambahkan/menghapus komentar.
EDIT: Sadarilah bahwa Anda juga ingin melampirkan data pengguna ke setiap komentar. Anda dapat BERGABUNG dengan tabel yang sama lebih dari sekali tetapi hasilnya jelek. Ini bisa berubah menjadi kueri yang sangat mahal. Saya juga menyertakan contoh cara membuat kolom alias agar tidak membingungkan:
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