특정 사용자의 채팅 파트너별로 그룹화 된 마지막 채팅 메시지를 쿼리하고 싶습니다. 내 현재 검색어가 작동하지만 파트너가 타임 스탬프별로 그룹화 한 사용자의 메일을 선택합니다. 하지만 다른 사용자가이 특정 사용자에게 보낸 마지막 메시지가 타임 스탬프별로 정렬되기를 원합니다. Sqlfiddle최대 열이있는 쿼리로 그룹화
예상 결과 : 여기
내 바이올린입니다
"x to me last
"라고 내가 채팅 메시지를 준비했습니다
... message
--------------------
... r to me last
... m to me last
2 행과 가장 큰 타임 스탬프 메시지 내 현재 검색어 :
SELECT A.*, DU.user as username, DU.photo, DU.city, DU.year, DU.month, DU.day
FROM db_chats A
INNER JOIN (
SELECT max(timestamp) ts, user, partner
FROM db_chats
GROUP BY partner) T
on A.timestamp=T.ts
and A.user=T.user
LEFT JOIN db_users DU on T.partner = DU.id
WHERE A.user = 'RGXiLkVpKGc4FSU7SeyMlZ7z' ORDER BY A.timestamp desc
에 의해 그룹 MAX 기능을 사용하기 전에 내부 쿼리의 정렬 순서입니다. 완벽하게 작동합니다! 나는 예상 한 결과를 얻었고 올바른 바이올린을 가지고 있습니까? – Patrick
[ "this"] (http://sqlfiddle.com/#!2/d10ce/84/0)을 클릭하십시오. :) 안녕하세요. 오신 것을 환영합니다. – Payam
하지만 timestamp desc로 정렬하지 않습니까? – Patrick