> 데이터 베이스 > MySQL 튜토리얼 > 조인된 테이블의 행당 단일 레코드로 조인 결과를 제한하려면 어떻게 해야 합니까?

조인된 테이블의 행당 단일 레코드로 조인 결과를 제한하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-11-19 11:09:03
원래의
474명이 탐색했습니다.

How Can I Limit Join Results to a Single Record per Row from the Joined Table?

LIMIT JOIN: 조인된 테이블에서 단일 레코드 검색

두 테이블을 조인할 때 결과를 단일 레코드로 제한해야 할 수 있습니다. 조인된 테이블의 행당. 이는 조인 절에서 참조하는 하위 쿼리의 LIMIT 1 절을 사용하여 MySQL에서 달성할 수 있습니다.

카테고리 및 제품 테이블을 조인하여 카테고리 정보와 각각에 연결된 첫 번째 제품을 얻으려는 시나리오를 고려해보세요. 카테고리.

SELECT c.id, c.title, p.id AS product_id, p.title
FROM categories AS c
JOIN products AS p ON c.id = p.category_id
로그인 후 복사

이 쿼리는 각 카테고리에 대한 모든 제품 기록을 반환하지만 이는 원하는 출력이 아닙니다. 각 카테고리의 첫 번째 제품으로 결과를 제한하려면 다음과 같이 쿼리를 수정하면 됩니다.

SELECT
 c.id,
 c.title,
 p.id AS product_id,
 p.title AS product_title
FROM categories AS c
JOIN products AS p ON
 p.id = (
  SELECT p1.id FROM products AS p1
  WHERE c.id=p1.category_id
  ORDER BY p1.id LIMIT 1
 )
로그인 후 복사

이 수정된 쿼리에서는 하위 쿼리를 사용하여 각 카테고리의 첫 번째 제품 ID를 검색합니다. 그런 다음 이 ID는 조인 절에서 사용되어 결과를 원하는 단일 레코드로 제한합니다.

이 접근 방식은 여러 제품 레코드를 집계하는 데 따른 성능 오버헤드를 방지하므로 제품 수가 많은 시나리오에서 특히 효율적입니다. 각 카테고리마다. 또한 MySQL과 PostgreSQL 모두에 적용 가능하여 데이터 검색을 위한 다양한 솔루션을 제공합니다.

위 내용은 조인된 테이블의 행당 단일 레코드로 조인 결과를 제한하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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