> 데이터 베이스 > MySQL 튜토리얼 > SQL 테이블에서 각 영화의 배우를 연결하는 방법은 무엇입니까?

SQL 테이블에서 각 영화의 배우를 연결하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-15 06:27:43
원래의
344명이 탐색했습니다.

How to Concatenate Actors for Each Movie in a SQL Table?

SQL 테이블에서 각 영화의 배우 이름 결합

'영화' 및 '배우' 열이 있는 테이블을 상상해 보세요. 이 작업은 각 영화의 모든 배우를 단일 문자열로 결합하여 영화 및 해당 배우 목록을 검색하는 것입니다.

string_agg():

를 사용한 솔루션

가장 효율적인 방법은 string_agg() 함수를 사용하는 것입니다(PostgreSQL 9.0 이상에서 사용 가능).

<code class="language-sql">SELECT movie, string_agg(actor, ', ') AS actor_list
FROM table_name
GROUP BY movie;</code>
로그인 후 복사

string_agg()은 각 영화에 대해 배우 이름을 쉼표로 구분하여 연결합니다. GROUP BY movie 영화당 한 행을 보장합니다.

이전 PostgreSQL 버전(9.0 이전)에 대한 대안:

이전 PostgreSQL 버전의 경우 array_agg()array_to_string()을 사용하세요.

<code class="language-sql">SELECT movie, array_to_string(array_agg(actor ORDER BY actor), ', ') AS actor_list
FROM table_name
GROUP BY movie;</code>
로그인 후 복사

배우를 배열로 집계한 다음 이를 쉼표로 구분된 문자열로 변환합니다. ORDER BY actor 절은 각 영화 목록 내에서 배우를 알파벳순으로 정렬합니다.

배우 목록 순서 사용자 정의:

각 목록 내의 배우 순서를 제어하려면(예: 청구 순서 기준) ORDER BY 내부에 string_agg()을 추가하거나 array_agg():

<code class="language-sql">SELECT movie, string_agg(actor, ', ' ORDER BY actor) AS actor_list  --Alphabetical order
FROM table_name
GROUP BY movie;</code>
로그인 후 복사

이러한 접근 방식은 영화배우 관계 표현을 간소화하고 데이터 분석 및 표시를 용이하게 합니다.

위 내용은 SQL 테이블에서 각 영화의 배우를 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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