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

Trả lại dữ liệu từ các hàng với ngày gần đây nhất của mỗi ứng cử viên riêng biệt

Bạn phải group by mọi thứ không sử dụng hàm tổng hợp:

SELECT candidate_id, message, max(created_unix), jobpost_id, staffuserid 
    FROM messages 
       WHERE employer_id='$employerid' AND last='company' 
          GROUP BY candidate_id, message, jobpost_id, staffuserid 

Nếu message của bạn là khác nhau trên mỗi hàng và bạn muốn group by candidate_id , thì bạn không được sử dụng message . Trong trường hợp đó, chỉ cần xóa nó khỏi danh sách đã chọn của bạn và bạn sẽ không cần nó trong nhóm group by danh sách. Điều tương tự cũng xảy ra với bất kỳ trường nào khác mà bạn không sử dụng.

Hãy nhớ rằng, khi sử dụng các hàm tổng hợp, bạn phải chứa từng trường trong một hàm tổng hợp hoặc nhóm group by . Nếu không, SQL sẽ không biết từ hàng nào để kéo dữ liệu cho hàng được trả về.

Cập nhật:

Sau khi thấy những gì bạn đang tìm kiếm, điều này sẽ thực hiện thủ thuật:

SELECT candidate_id, message, max(created_unix), jobpost_id, staffuserid 
    FROM messages 
       WHERE employer_id='$employerid' AND last='company' AND
       created_unix = (
           SELECT max(subm.created_unix)
           FROM messages subm
           WHERE subm.candidate_id = messages.candidate_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. Cách hoạt động của hàm EXPORT_SET () trong MySQL

  2. Tìm kiếm bảng mysqli với biểu mẫu và kết quả hiển thị

  3. Tại sao tập lệnh sao lưu cơ sở dữ liệu của tôi không hoạt động trong php?

  4. php / mysql. Có hàm mysql để phát hiện xem có ít nhất 2 từ nhất định tồn tại trong ít nhất một trường hàng mysql không

  5. Truy xuất tất cả các hàng từ tháng trước (Laravel + Eloquent)