> 데이터 베이스 > MySQL 튜토리얼 > 중복된 날짜가 있는 테이블에서 각 고유 ID에 대한 가장 빠른 레코드를 효율적으로 찾는 방법은 무엇입니까?

중복된 날짜가 있는 테이블에서 각 고유 ID에 대한 가장 빠른 레코드를 효율적으로 찾는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-17 19:56:14
원래의
431명이 탐색했습니다.

How to Efficiently Find the Earliest Record for Each Distinct ID in a Table with Duplicate Dates?

고유 ID별 첫 번째 레코드 추출, 중복 날짜 처리

MyTable, key_id, id 열과 기타 열(record_date)이 있는 테이블(other_cols이라고 부르겠습니다)을 상상해 보세요. 목표는 모든 고유 record_date에 대해 가장 빠른 id을 포함하는 행을 찾아내는 것입니다.

표준 방법은 종종 고유한 record_date 값을 가정하지만 데이터에 중복이 있을 수 있습니다. 서브쿼리와 조인을 이용한 복잡한 쿼리는 불필요한 결과를 낳을 수 있습니다.

보다 간소화된 접근 방식은 하위 쿼리를 사용합니다.

<code class="language-sql">SELECT mt.*
FROM MyTable mt
INNER JOIN (
    SELECT id, MIN(record_date) AS MinDate
    FROM MyTable
    GROUP BY id
) t ON mt.id = t.id AND mt.record_date = t.MinDate;</code>
로그인 후 복사

내부 하위 쿼리는 데이터를 그룹화하여 각 record_date에 대해 가장 빠른 MinDate(id)을 효율적으로 찾습니다. 그런 다음 외부 쿼리는 이 결과를 원래 테이블(MyTable)에 다시 조인하여 record_date가 하위 쿼리에서 찾은 최소 날짜와 일치하는 행만 선택합니다. 이를 통해 각각의 고유한 id에 대한 가장 빠른 레코드를 효과적으로 검색하여 중복 날짜를 적절하게 처리하고 중복 데이터를 방지합니다.

위 내용은 중복된 날짜가 있는 테이블에서 각 고유 ID에 대한 가장 빠른 레코드를 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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