타임스탬프, 비용, 제거 등과 같은 열이 포함된 MySQL 테이블이 있는 시나리오를 생각해 보세요. . 귀하의 목표는 각 고유 제거에 대한 최신 행의 pid를 검색하는 것입니다.
다음을 사용하여 이 작업을 시도했습니다. 쿼리:
SELECT MAX(timestamp),rid,pid FROM theTable GROUP BY rid
그러나 반환된 pid 값이 최대 타임스탬프와 정렬되지 않았습니다. 이는 GROUP BY가 SELECT 절의 모든 열을 고려하고 각 그룹에 대해 일치하는 첫 번째 행을 선택하기 때문입니다.
이를 수정하려면 각 그룹의 ID와 최대 타임스탬프를 식별해야 합니다. 하위 쿼리를 사용하여 이 작업을 수행할 수 있습니다.
SELECT rid, MAX(timestamp) AS ts FROM theTable GROUP BY rid
이 쿼리의 결과는 다음과 같습니다.
rid | ts -----|----- 1 | 2011-04-14 01:06:06 2 | 2011-04-14 01:05:41 3 | 2011-04-14 01:14:14
이제rid를 사용하여 이 하위 쿼리로 원본 테이블을 조인할 수 있습니다. 및 타임스탬프를 사용하여 원하는 pid 값을 검색합니다.
SELECT theTable.pid, theTable.cost, theTable.timestamp, theTable.rid FROM theTable INNER JOIN ( SELECT rid, MAX(timestamp) AS ts FROM theTable GROUP BY rid ) AS maxt ON (theTable.rid = maxt.rid AND theTable.timestamp = maxt.ts)
이 쿼리의 결과는 pid를 제공합니다. 비용, 타임스탬프 및 각 고유 제거에 대한 최신 행을 제거합니다.
위 내용은 MySQL에서 각 고유 RID에 대한 최신 행의 PID를 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!