> 데이터 베이스 > MySQL 튜토리얼 > MySQL의 기록 테이블에서 가장 최근 행을 효율적으로 조인하는 방법은 무엇입니까?

MySQL의 기록 테이블에서 가장 최근 행을 효율적으로 조인하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-02 15:39:40
원래의
487명이 탐색했습니다.

How to Efficiently Join the Most Recent Row from a Historical Table in MySQL?

MySQL에서 가장 최근 행에 조인

customer 및 customer_data라는 두 테이블이 주어지고 후자에 고객 변경 사항에 대한 기록이 포함되어 있는 경우 현재 수행할 작업은 검색하는 것입니다. customer_data의 가장 최근 항목만 고객 테이블의 각 고객과 조인되도록 하면서 고객 정보를 확인하세요.

이를 달성하려면 더 나은 성능과 코드 가독성을 제공하므로 기본 쿼리 본문 대신 WHERE 절을 사용합니다. 최적화된 쿼리는 다음과 같습니다.

SELECT c.*,
       CONCAT(title, ' ', forename, ' ', surname) AS name
FROM customer c
LEFT JOIN customer_data d
ON c.customer_id = d.customer_id
WHERE d.customer_id = (
    SELECT MAX(customer_id)
    FROM customer_data
    WHERE customer_id = c.customer_id
)
LIMIT 10, 20;
로그인 후 복사

이 쿼리는 WHERE 절 내에서 필터링하여 customer_data의 가장 최근 행만 고객의 각 고객에 대해 조인되도록 합니다. LEFT JOIN을 사용하면 customer_data에 해당 항목이 없더라도 customer의 모든 고객이 결과에 포함됩니다.

CONCAT 및 LIKE를 함께 사용하는 것에 대한 우려 사항에 대해서는 말씀하신 것이 맞습니다. CONCAT은 문자열을 연결하고 결과 문자열을 LIKE 연산자와 함께 사용하여 패턴 일치를 수행할 수 있습니다. 귀하의 질문은 그런 측면에서 유효합니다.

위 내용은 MySQL의 기록 테이블에서 가장 최근 행을 효율적으로 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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