의 마지막 메시지를 얻을 수 있습니다.쿼리 나는 다음과 같은 구조를 가진 SQLite는 테이블이 각각 별개의 행
각 convo_id (또는 각 친구의 마지막 메시지)에 대한 마지막 메시지을 가져 오는 쿼리를 원합니다. 이와 유사한
의 마지막 메시지를 얻을 수 있습니다.쿼리 나는 다음과 같은 구조를 가진 SQLite는 테이블이 각각 별개의 행
각 convo_id (또는 각 친구의 마지막 메시지)에 대한 마지막 메시지을 가져 오는 쿼리를 원합니다. 이와 유사한
먼저, 각 convo_id
의 마지막 타임 스탬프를 찾아 또는 그 이후로 한 번에 모든 작업을 수행 할 수 있습니다.
SELECT *,
MAX(time)
FROM Message
GROUP BY convo_id
Sqlite 3.6을 지원하는 Android API 10에서 작동합니다. 즉, 단일 단계 솔루션이 더 낮은 버전에서도 작동합니다. Thnx –
작동이 보장되지는 않습니다 (특히 가장 큰 시간이 테이블의 마지막에 저장되지 않은 경우). –
뭔가 :
select convo_id,message from Message where (convo_id,_id) IN (select convo_id,max(_id) as _id from Message group by convo_id);
구문 오류가 포함될 수 있습니다. 나는 내 PC에서 그것을 시도하지 않았다. 당신이 SQLite는 3.7.11이있는 경우
SELECT Message.*
FROM Message
JOIN (SELECT convo_id,
MAX(time) AS time
FROM Message
GROUP BY convo_id)
USING (convo_id, time)
: 원래 테이블의 레코드를 필터링하기 위해이 값을 사용하여, 다음
SELECT convo_id,
MAX(time) AS time
FROM Message
GROUP BY convo_id
:
** _ id **는 autoincrement이므로, 각 ** convo_id **의 max (** _ id **)를 얻을 수 있다면, ** reply ** ** id ** s에서 마지막 Message를 얻을 수 있습니다. –
What @ Rezoan은 당신이 직접 물어보기 전에 당신이 직접 질문을 쓰려고 노력한 것이 었습니다. 검색어에 문제가있는 경우 질문에 추가하면 Google에서 도와드립니다. 즉, 결과를 타임 스탬프별로 정렬하고 각 convo_id에 대해 결과 수를 1로 제한해야합니다. – rb512