Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql/php:tampilkan posting dan untuk setiap posting semua komentar

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Kenaikan otomatis kolom sementara dalam pernyataan pilih

  2. kelompokkan berdasarkan rentang di mysql

  3. Menggunakan PHP &MySQL untuk mengisi dropdown

  4. Mendapatkan hasil tertinggi dalam GABUNG

  5. Perintah MySQL INSERT atau REPLACE