해결해야 할 약간의 문제가 있지만 그렇게 할 수 없습니다.MySQL : 각 쌍의 마지막 행을 선택하십시오.
id user friend msg date
----------------------------------------------------------------------
1 1 2 Hello Bob! 2014-07-04 01:00
2 1 2 How are you doing? 2014-07-04 01:01
3 2 1 I'm fine bro! 2014-07-04 02:30
4 1 3 Hey Mark :D 2014-07-04 02:31
5 3 1 Yo! 2014-07-04 02:32
6 4 1 Wassup?! 2014-07-04 07:00
나는 각 쌍 (사용자와 친구)의 마지막 메시지의 배열을 반환하는 PHP getInbox($uid)
방법에 일하고 있어요 : 나는 다음과 같은 chat
테이블이 있습니다. GROUP BY friend
과 함께 SELECT
쿼리를 시도했지만 불완전합니다.
SELECT * FROM `chat`
GROUP BY `friend`
WHERE `user` = $uid OR `friend` = $uid
원하는 결과는 다음과 같습니다
id user friend msg date
----------------------------------------------------------------------
3 2 1 I'm fine bro! 2014-07-04 02:30
5 3 1 Yo! 2014-07-04 02:32
6 4 1 Wassup?! 2014-07-04 07:00
내가 도움을 주셔서 감사합니다 것입니다!
"스레드"또는 "대화"식별자가 있다면이 방법이 훨씬 쉽습니다. 간단한 방법은 모든 응답의 "상위"를 체인의 첫 번째로 설정 한 다음 각 체인의 마지막을 선택하는 것입니다. – tadman
그래서'4,1,3'은 "mark"메시지이고, 5,3,1은 mark의 회신이라고 생각하십니까? –
나는 그것에 대해 생각하고, 대화'대화 '를 만들고 각 대화 행에 외래 키를 설정했습니다. 하지만 하나의 테이블로 시험해보고 싶습니다. – bodruk