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

Hiển thị bài đăng của người đăng ký và bài viết của chính người dùng

Bạn có thể thực hiện việc sửa đổi truy vấn của mình thành:

SELECT POSTS.*
FROM POSTS
LEFT JOIN SUBSCRIBERS
ON POSTS.AUTHORID = SUBSCRIBERS.PROFILEID
WHERE SUBSCRIBERS.SUBSCRIBERID = ? OR POSTS.AUTHORID = ?
GROUP BY POSTS.POSTID ORDER BY POSTS.POSTID DESC LIMIT 10 

Nó cũng chọn các bài đăng của chính người dùng. Hy vọng điều này sẽ hữu ích.

Đã cập nhật:Đã thêm GROUP BY POSTS.POSTID vì vậy các bản sao sẽ bị loại bỏ vì bạn chỉ tìm kiếm dữ liệu trong POSTS bảng.

Khi bạn chạy truy vấn như truyền các giá trị- Ví dụ:đối với người dùng có id 1, truy vấn trông giống như sau:

SELECT POSTS.*
FROM POSTS
LEFT JOIN SUBSCRIBERS
ON POSTS.AUTHORID = SUBSCRIBERS.PROFILEID
WHERE SUBSCRIBERS.SUBSCRIBERID = 1 OR POSTS.AUTHORID = 1 GROUP BY POSTS.POSTID
ORDER BY POSTS.POSTID DESC LIMIT 10

Kết quả là:

PostID  AuthorID    PostDate    PostBody

3       1   2012-12-21  Oh Wait
2       3   2012-12-21  Bye Bye World
1       2   2012-12-20  Hello Word

Đây là những gì bạn nhận được khi chuyển các giá trị cho truy vấn chọn đúng cách. Các giá trị được chuyển đến SUBSCRIBERIDAUTHORID nên giống nhau. LEFT JOIN sẽ khắc phục sự cố của bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để gửi email tự động từ các bản ghi MySQL?

  2. Ngăn các bản ghi trùng lặp vào một bảng bằng PHP

  3. Cách bật công cụ FEDERATED trong XAMPP

  4. Nối một hàng từ một bảng trong MySQL

  5. Tìm sự phụ thuộc hàm