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

MySQL 테이블을 조인할 때 가장 최근 행만 검색하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-05 16:17:39
원래의
797명이 탐색했습니다.

How to Retrieve Only the Most Recent Row When Joining MySQL Tables?

가장 최근 행만 검색하기 위해 MySQL 테이블 조인

데이터 관리 시스템에서 여러 소스의 정보를 결합하려면 테이블 조인이 필수적입니다. 기록 데이터를 처리할 때 조인된 테이블 중 하나에서 가장 최근 행을 검색해야 하는 경우가 종종 있습니다.

고객 데이터가 customer 및 customer_data라는 두 테이블에 저장되어 있는 고객 데이터베이스의 시나리오를 생각해 보세요. 고객 테이블에는 기본 고객 정보가 포함되어 있으며 customer_data는 고객 프로필의 변경 사항을 저장합니다. 고객 정보를 테이블에 표시하려면 두 테이블을 조인해야 하지만 우리는 customer_data에서 가장 최근 행만 원합니다.

이를 달성하려면 하위 쿼리와 함께 MySQL의 MAX() 함수를 활용할 수 있습니다. customer_data에서 가장 최근 행의 ID를 찾습니다. 쿼리는 다음과 같습니다.

SELECT 
  c.*,
  cd.value
FROM 
  customer c
LEFT JOIN 
  customer_data cd ON c.customer_id = cd.customer_id
WHERE 
  cd.customer_id = (
    SELECT 
      MAX(customer_id) 
    FROM 
      customer_data
    WHERE 
      customer_id = c.customer_id
  )
로그인 후 복사

이 쿼리는 먼저 고객 테이블(접두사 c.)에서 모든 열을 검색합니다. 그런 다음 customer_data 테이블(접두사 cd.)을 사용하여 LEFT JOIN을 수행하고 customer_data의 행을 필터링하여 각 고객에 대한 최대 customer_id를 가진 행만 포함합니다(하위 쿼리에 의해 결정됨).

또한 다음과 같습니다. 참조 쿼리에 언급된 대로 LIKE와 함께 CONCAT()을 사용하면 연결된 열의 특정 값을 검색할 수 있습니다. 샘플 쿼리에서 CONCAT(title,' ',forename,' ',surname)은 문자열 '%Smith%'와 비교됩니다. 이렇게 하면 결합된 필드 어디에서나 하위 문자열 "Smith"가 포함된 모든 고객 이름이 반환됩니다.

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

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