>데이터 베이스 >MySQL 튜토리얼 >SQL에서 연결된 응용 프로그램 이름의 쉼표로 구분된 목록을 만드는 방법은 무엇입니까?

SQL에서 연결된 응용 프로그램 이름의 쉼표로 구분된 목록을 만드는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-18 22:16:12582검색

How to Create Comma-Separated Lists of Associated Application Names in 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.