SELECT * FROM conversation_1
LEFT JOIN conversation_2
ON conversation_1.c_id = conversation_2.c_id
LEFT JOIN user
ON conversation_2.user_id = user.user_id
LEFT JOIN message
ON conversation_1.c_id = message.c_id
WHERE conversation_1.user_id=1
GROUP BY message.c_id
conversation_1 conversation_2
c_id user_id c_id user_id
1 1 1 2
2 1 2 3
3 2
내가 DB는 MySQL을 구축하는 메시지가MySQL의 그룹 가져 오기 마지막 행
는나는 4 개 테이블 사용자, conversation_1, conversation_2, 메시지를 만들
사용자가 자신의 메시지 상자를 열려고하면, 그것은 것 메시지에 가입보다는 어떤 사용자
을 찾기 위해 대화 (conversation_1) 사용자 conversation_2 및 사용 conversation_2에 가입보다
을 가져옵니다.
c_id user_id user_name message
1 2 Alex Hi user_1, this is user_2
2 3 John hi user_3, user_2 don't talk to me
잘 작동하지만 나는 GROUP BY
현재는이 그룹의 첫 번째 행을 표시 message
에서 마지막 행을 표시합니다.
ps.conversation_1.c_id는 자동 증가하고 MySQL Extensions to GROUP BY
아래에 설명 된대로 C_ID는
"* 마지막 *"정의되지 결석 명시 적 순서의 개념. 'message' 테이블에서 어떤 메시지가 "* last *"인지 어떻게 알 수 있습니까? – eggyal
message_id 자동 증분, m_id DESC m_id ORDER BY 사용하려고하지만 그것은 GROUP BY없이 한 행에 대해서만 작동합니다, 나는 두 개 이상의 행이 필요합니다 – user2178521