집 >데이터 베이스 >MySQL 튜토리얼 >MySQL의 `MAX()` 및 `GROUP BY`를 사용하여 각 고유 `rid`에 대한 최신 `pid`를 효율적으로 검색하는 방법은 무엇입니까?
문제:
pid, timestamp 열이 있는 테이블이 제공됩니다. , 비용 및 제거의 경우 작업은 각 고유 제거에 대한 최신 행의 pid를 검색하는 것입니다. pid가 자동 증가 기본 키라는 점을 고려하면
원래 쿼리:
다음 쿼리는 최대 타임스탬프와 해당 Rid 값을 검색하지만 올바르게 반환하지 않습니다. 최신 pid:
SELECT MAX(timestamp), rid, pid FROM theTable GROUP BY rid
해결책:
각 제거에 대한 최신 pid를 효과적으로 얻으려면 다음과 같은 기술 조합이 필요합니다.
최대 타임스탬프와 해당 제거를 식별합니다. 값:
SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid
최대 타임스탬프 결과에 대해 원래 테이블 조인:
SELECT t.pid, t.cost, t.timestamp, t.rid FROM theTable AS t JOIN (SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid) AS maxt ON t.rid = maxt.rid AND t.timestamp = maxt.maxt
이 수정된 쿼리는 pid, 비용, 타임스탬프를 효과적으로 검색하고 각 고유에 대한 최신 행을 제거합니다. 원래 테이블을 제거하세요.
위 내용은 MySQL의 `MAX()` 및 `GROUP BY`를 사용하여 각 고유 `rid`에 대한 최신 `pid`를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!