首頁 > 資料庫 > mysql教程 > 如何在 SQL 中建立關聯應用程式名稱的逗號分隔清單?

如何在 SQL 中建立關聯應用程式名稱的逗號分隔清單?

Patricia Arquette
發布: 2025-01-18 22:16:12
原創
578 人瀏覽過

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 Server (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 Server (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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板