집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 연결된 응용 프로그램 이름의 쉼표로 구분된 목록을 만드는 방법은 무엇입니까?
SQL 쿼리를 사용하여 쉼표로 구분된 목록 만들기
여러 테이블에 애플리케이션 및 리소스 데이터가 포함되어 있는 경우 일반적인 작업은 쉼표로 구분된 관련 애플리케이션 이름과 함께 모든 리소스 이름을 나열하는 테이블을 나열하는 것입니다. 단일 SQL 쿼리를 사용하여 이를 달성하려면 다음 단계를 따르세요.
MySQL:
<code class="language-sql">SELECT r.name, GROUP_CONCAT(a.name SEPARATOR ',') AS application_names FROM RESOURCES r JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id JOIN APPLICATIONS a ON a.id = ar.app_id GROUP BY r.name</code>
SQL 서버(2005):
<code class="language-sql">SELECT r.name, STUFF((SELECT ',' + a.name FROM APPLICATIONS a JOIN APPLICATIONRESOURCES ar ON ar.app_id = a.id WHERE ar.resource_id = r.id GROUP BY a.name FOR XML PATH(''), TYPE).value('text()[1]','NVARCHAR(max)'), 1, LEN(','), '') AS application_names FROM RESOURCES r</code>
SQL 서버(2017):
<code class="language-sql">SELECT r.name, STRING_AGG(a.name, ',') AS application_names FROM RESOURCES r JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id JOIN APPLICATIONS a ON a.id = ar.app_id GROUP BY r.name</code>
Oracle: Oracle은 여러 문자열 집계/결합 옵션을 제공합니다. 특정 구문 및 요구 사항은 설명서를 참조하세요.
이러한 쿼리는 "RESOURCES" 테이블을 "APPLICATIONSRESOURCES" 및 "APPLICATIONS" 테이블과 조인하여 리소스 이름 및 관련 애플리케이션 이름을 검색합니다. 그런 다음 "GROUP_CONCAT", "STUFF" 또는 "STRING_AGG" 함수를 사용하여 애플리케이션 이름을 각 리소스의 쉼표로 구분된 목록으로 연결합니다. 가독성을 높이기 위해 결과 열에 별칭 application_names
을 추가했습니다.
위 내용은 SQL에서 연결된 응용 프로그램 이름의 쉼표로 구분된 목록을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!