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
)