>데이터 베이스 >MySQL 튜토리얼 >관련 테이블의 가장 최근 행에만 MySQL 테이블을 조인하는 방법은 무엇입니까?

관련 테이블의 가장 최근 행에만 MySQL 테이블을 조인하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-01 11:18:11632검색

How to Join a MySQL Table to Only the Most Recent Row in a Related Table?

MySQL: 가장 최근 행에만 조인

이 시나리오에는 customer 및 customer_data 테이블이 있으며, 여기서 customer_data에는 다음 기록이 포함되어 있습니다. 각 고객마다 변경됩니다. 목표는 customer_data의 가장 최근 행에만 조인하면서 고객 정보를 검색하는 것입니다.

이를 달성하려면 WHERE 절 내의 하위 쿼리를 활용하여 customer_data에서 각 고객의 최대 ID를 식별합니다. 아래와 같이 LEFT JOIN 구문을 사용하여 고객 테이블에 이 하위 쿼리를 조인합니다.

SELECT c.*,
FROM customer AS c
LEFT JOIN customer_data AS d ON d.customer_id = c.customer_id AND d.ID = (
  SELECT MAX(ID)
  FROM customer_data
  WHERE customer_id = c.customer_id
)
WHERE name LIKE '%Smith%'
LIMIT 10, 20;

이 쿼리에서:

  • LEFT JOIN은 고객 테이블의 모든 행이 customer_data에 해당 행이 없더라도 결과에 포함됩니다.
  • WHERE 내의 하위 쿼리 절은 customer_data에서 각 고객의 최대 ID를 계산합니다.
  • 그런 다음 하위 쿼리의 결과를 customer_data의 ID 열과 비교하여 가장 최근 행만 선택합니다.

이 접근 방식은 각 고객의 가장 최근 항목을 효과적으로 분리하고 추가 처리를 위해 고객 테이블에 결합합니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.