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

ĐẶT HÀNG THEO một ID khi có nhiều ID giống nhau trong một bảng

Chúng tôi muốn mới nhất đăng trên mỗi duy nhất chủ đề, chúng tôi có thể làm điều đó bằng ...

Sử dụng GROUP BYHAVING .

SELECT * 
FROM Posts
JOIN Discussions
    on Discussions.discussion_id = Posts.discussion_id
GROUP BY Discussions.discussion_id
HAVING Posts.post_time = max(Posts.post_time)
ORDER BY Posts.post_time DESC

Đây là một ví dụ ! Hãy chắc chắn rằng bạn sử dụng nó để sửa đổi của riêng bạn, nó khá đơn giản. Tôi không có cơ sở dữ liệu để kiểm tra điều này, nhưng tôi đã thử nghiệm với dữ liệu của riêng mình và các cột khác nhau và nó đã hoạt động.

Lưu ý: Điều này giả định rằng mỗi Id là giống nhau trong cả hai bảng. Nó cũng giả định rằng post_time là một giá trị thời gian nào đó càng tăng càng gần đây bài đăng (tức là Dấu thời gian SQL).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách dễ nhất để nhập một bảng mới vào MySQL v5 từ CSV là gì?

  2. Nối 4 bảng trong truy vấn SQL

  3. Tôi có thể thay thế mù quáng tất cả các hàm mysql_ bằng mysqli_ không?

  4. Cách nào tốt hơn để viết mã PHP để chèn dữ liệu

  5. Nghịch đảo của SQL LIKE '% value%'