首頁 > 資料庫 > mysql教程 > 如何使用 SQL 從關聯式資料庫表中高效率建立逗號分隔清單?

如何使用 SQL 從關聯式資料庫表中高效率建立逗號分隔清單?

Mary-Kate Olsen
發布: 2025-01-18 22:09:10
原創
968 人瀏覽過

How to Efficiently Create Comma-Separated Lists from Relational Database Tables using SQL?

使用 SQL 高效率建立逗號分隔清單

資料庫任務經常需要將資料欄位連接成逗號分隔的清單。 SQL 提供了高效的解決方案,無需過程程式碼。

範例:想像三個表:Applications(id,名稱)、Resources(id,名稱)和 ApplicationsResources(id、app_id、resource_id)。目標是產生一份報告,顯示每個資源名稱以及以逗號分隔的關聯應用程式清單。

這可以使用 GROUP_CONCAT(MySQL 和某些 SQL Server 版本)或 STRING_AGG(SQL Server 2017 及更高版本)來實現。這些函數有效地連接按特定列分組的值。

MySQL/某些 SQL Server 版本:

<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 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 提供了多種字串聚合方法,包括 LISTAGGDBMS_PCL_ROWPKT 套件。有關詳細說明,請參閱 Oracle 文件。

這種基於 SQL 的方法提供了一種直接在資料庫查詢中產生逗號分隔清單的簡化方法,從而改進了應用程式和 GUI 中的資料呈現。

以上是如何使用 SQL 從關聯式資料庫表中高效率建立逗號分隔清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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