GROUP BY를 사용하여 그룹당 가장 최근 레코드 검색
이 컨텍스트에는 "messages" 열이 있는 "messages"라는 테이블이 있습니다. id", "from_id", "to_id", "제목", "메시지" 및 "타임스탬프". 목표는 Facebook 받은 편지함의 표시와 유사하게 각 사용자로부터 가장 최근 메시지를 추출하는 것입니다.
제공된 쿼리 "SELECT * FROM message GROUP BY from_id"는 대신 각 사용자에 대해 가장 오래된 메시지를 생성합니다. 최신의. 이 문제를 해결하려면 대체 접근 방식이 필요합니다.
가장 최근 메시지를 얻으려면 각 사용자의 최대 타임스탬프를 결정하고 이 정보를 "메시지" 테이블과 결합해야 합니다. 아래 쿼리는 이를 수행합니다.
SELECT t1.* FROM messages t1 JOIN (SELECT from_id, MAX(timestamp) timestamp FROM messages GROUP BY from_id) t2 ON t1.from_id = t2.from_id AND t1.timestamp = t2.timestamp;
이 쿼리는 다음을 수행합니다.
결과는 원하는 기능을 제공하는 각 사용자의 가장 최근 메시지만 포함하는 테이블입니다.
위 내용은 데이터베이스의 각 사용자로부터 가장 최근 메시지를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!