집 >데이터 베이스 >MySQL 튜토리얼 >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은 각 피드와 연결된 첫 번째 아티스트만 검색합니다.
위 내용은 LEFT JOIN에서 첫 번째 행만 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!