0
2 개의 테이블 메시지와 대화를 만들었습니다.특정 순서로 결과를 표시하는 간단한 mysql 쿼리
대화 테이블은 메시지를 보내고받는 두 명의 사용자에 대해 고유 한 ID를 만듭니다.
메시지 테이블에는 사용자 메시지의 모든 정보가 포함됩니다.
대화 테이블
conversation_id | user_id1 | user_id2 |last_message_id
1 5 1 4
2 5 2 5
message_id | conversation_id | sender_id | message | created_time
1 1 5 MSG A 2012-06-10 00:20:04
2 1 5 MSG B 2012-06-10 00:20:21
3 1 5 MSG C 2012-06-10 00:21:09
4 1 1 MSG D 2012-06-10 00:22:23
5 2 5 MSG E 2012-06-10 00:25:16
출력 내가 원하는 :
sender_id | message | created_time
5 MSG E 2012-06-10 00:25:16
1 MSG D 2012-06-10 00:22:23
내가 뭘하려 :
SELECT * FROM conversation c, messages m
WHERE c.user_id1='$userid' OR c.user_id2='$userid'
AND c.last_message_id=m.message_id
ORDER BY created_time DESC
그러나 생 쿼리가 올바른 결과를 표시하지 않습니다.
다음과 같이 그룹화 할 필요가 있습니까?
SELECT * FROM TABLE
WHERE CONDITION
(SELECT MAX(created_time)
FROM TABLE
GROUP BY SOMEFEILD)
order by time desc
위대한처럼 쿼리를 변경합니다! 그것은 작동합니다 !! .... – Jadzia