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

Có thể LIMIT kết quả từ một truy vấn JOIN không?

Điều này sẽ nhận được các bài đăng của bạn với ba nhận xét gần đây nhất cho mỗi bài đăng, giả sử rằng các bảng của bạn trông giống như vậy:

bài đăng :
id , post_text

nhận xét :
id , post_id , comment_text

SELECT id, post_text, comment_text
FROM
(
    SELECT p.id, p.post_text, c.comment_text
           CASE
             WHEN @id != p.id THEN @row_num := 1
             ELSE @row_num := @row_num + 1
           END AS rank,
           @id := p.id
    FROM post p
    LEFT JOIN comment c ON ( c.post_id = p.id )
    JOIN ( SELECT @id:=NULL, @row_num:=0 ) x
    ORDER BY p.id,
             c.id DESC -- newest comments first
) y
WHERE rank <= 3;

Truy vấn phụ được sử dụng để lấy các nhận xét gần đây trước tiên và đánh số thứ tự chúng cho mỗi bài đăng, trong khi lựa chọn bên ngoài loại bỏ các nhận xét cũ hơ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. Quyền truy cập mySQL của Cơ sở dữ liệu Java bị từ chối

  2. Java PreparedStatement và TRÊN CẬP NHẬT KHÓA DUPLICATE:làm cách nào để biết liệu hàng đã được chèn hoặc cập nhật hay chưa?

  3. Truy vấn múi giờ MySQL

  4. Truy vấn tổng hợp

  5. Kết nối MariaDB với Sequelize