"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > LEFT JOIN에서 첫 번째 행만 검색하는 방법은 무엇입니까?

LEFT JOIN에서 첫 번째 행만 검색하는 방법은 무엇입니까?

2024년 11월 18일에 게시됨
검색:680

How to Retrieve Only the First Row in a LEFT JOIN?

LEFT JOIN에서 첫 번째 행만 검색

SQL에서 LEFT JOIN 작업을 수행하면 오른쪽 테이블에 여러 행이 생성될 수 있음 왼쪽 테이블의 단일 행과 일치합니다. 일부 시나리오에서는 왼쪽 테이블의 각 행에 대해 오른쪽 테이블의 첫 번째 행만 검색하는 것이 바람직합니다.

다음과 같은 단순화된 데이터 구조를 고려하세요.

**Feeds**
id | title | content
----------------------
1  | Feed 1 | ...

**Artists**
artist_id | artist_name
-----------------------
1 | Artist 1
2 | Artist 2

**feeds_artists**
rel_id | artist_id | feed_id
----------------------------
1 | 1 | 1
2 | 2 | 1

피드 기사를 검색하고 첫 번째 아티스트만 각 피드에 연결하려면 다음 구문을 시도할 수 있습니다.

SELECT *
FROM feeds
LEFT JOIN feeds_artists ON wp_feeds.id = (
    SELECT feeds_artists.feed_id FROM feeds_artists
    WHERE feeds_artists.feed_id = feeds.id
    LIMIT 1
)
WHERE feeds.id = '13815'

그러나 이 접근 방식은 원하는 결과를 얻지 못할 수도 있습니다. 목표를 달성하려면 다음 대안을 고려하십시오.

SELECT *
FROM feeds f
LEFT JOIN artists a ON a.artist_id = (
    SELECT
      MIN(fa.artist_id) a_id
    FROM feeds_artists fa 
    WHERE fa.feed_id = f.id
)

이 수정에서는 MIN() 함수를 사용하여 시간이 지남에 따라 아티스트 ID가 증가한다는 가정하에 가장 낮은 ID를 가진 아티스트를 결정합니다. 결과적으로 LEFT JOIN은 각 피드와 연결된 첫 번째 아티스트만 검색합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3