Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

mysql / php:hiển thị các bài đăng và cho mỗi bài đăng, tất cả các bình luận

Không biết cấu trúc cơ sở dữ liệu của bạn, nó sẽ trông giống như thế này. Lưu ý rằng bạn nên thay thế * các ký tự với danh sách cột rõ ràng hơn mà bạn thực sự cần.

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

Lưu ý rằng nếu bạn chỉ đang cố gắng lấy số, tổng và những thứ tương tự thì bạn nên lưu vào bộ nhớ cache một số thông tin đó. Ví dụ:bạn có thể muốn lưu số nhận xét vào bộ nhớ cache trong bảng bài đăng thay vì đếm chúng trong mỗi truy vấn. Chỉ tính và cập nhật số lượng nhận xét khi thêm / xóa nhận xét.

CHỈNH SỬA: Nhận ra rằng bạn cũng muốn đính kèm dữ liệu người dùng vào mỗi nhận xét. Bạn có thể THAM GIA vào cùng một bảng nhiều lần nhưng nó trở nên xấu xí. Điều này có thể trở thành một truy vấn thực sự tốn kém. Tôi cũng bao gồm một ví dụ về cách đặt bí danh cho các cột để đỡ nhầm lẫn hơn:

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. Khóa chính mặc định có thể là NULL không? Tại sao nó được mô tả như vậy?

  2. Không thể kết nối với Cơ sở dữ liệu MySQL trên Node.js

  3. Muốn tách chuỗi trong mysql bằng cách sử dụng SUBSTRING_INDEX

  4. Cách NOT RLIKE hoạt động trong MySQL

  5. Giao dịch MySQL với ứng dụng kế toán