> 데이터 베이스 > MySQL 튜토리얼 > 데이터베이스의 각 사용자로부터 가장 최근 메시지를 검색하는 방법은 무엇입니까?

데이터베이스의 각 사용자로부터 가장 최근 메시지를 검색하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-04 04:51:42
원래의
460명이 탐색했습니다.

How to Retrieve the Most Recent Message from Each User in a Database?

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;
로그인 후 복사

이 쿼리는 다음을 수행합니다.

  1. 하위 쿼리 "(SELECT from_id, MAX(timestamp)에서 각 사용자의 가장 최근 타임스탬프를 계산합니다. 타임스탬프 FROM 메시지 GROUP BY from_id)".
  2. 이 하위 쿼리를 "from_id" 및 "timestamp" 열을 사용하는 원본 "messages" 테이블.

결과는 원하는 기능을 제공하는 각 사용자의 가장 최근 메시지만 포함하는 테이블입니다.

위 내용은 데이터베이스의 각 사용자로부터 가장 최근 메시지를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿