ホームページ > データベース > mysql チュートリアル > SQL を使用してリレーショナル データベース テーブルからカンマ区切りリストを効率的に作成する方法

SQL を使用してリレーショナル データベース テーブルからカンマ区切りリストを効率的に作成する方法

Mary-Kate Olsen
リリース: 2025-01-18 22:09:10
オリジナル
1017 人が閲覧しました

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

SQL を使用したカンマ区切りリストの効率的な作成

データベース タスクでは、データ フィールドをカンマ区切りのリストに連結することが頻繁に必要になります。 SQL は効率的なソリューションを提供し、手続き型コードの必要性を排除します。

例: Applications (id, name)、Resources (id, name)、および ApplicationsResources (id, app_id, resource_id) の 3 つのテーブルを想像してください。目的は、各リソース名と関連するアプリケーションのカンマ区切りリストを示すレポートを生成することです。

これは、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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート