ホームページ > データベース > mysql チュートリアル > SQL でカンマ区切り値を使用してテーブルを結合するにはどうすればよいですか?

SQL でカンマ区切り値を使用してテーブルを結合するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-14 04:32:14
オリジナル
984 人が閲覧しました

How to Join Tables with Comma-Separated Values in SQL?

2 つのテーブルをカンマ区切りの値で結合する

問題:

テーブルが 2 つあります: ノートとポジション。 Notes テーブルには、カンマ区切りの部門 ID を格納する「forDepts」という列が含まれています。これらのテーブルを結合し、'forDepts' 値を、Positions テーブルの対応する部門名に関連付ける必要があります。

必要な出力:

nid DepartmentName
1 Executive, Corp Admin, Art
2 Art, Marketing

解決策:

データベース構造は変更できないため、次の SQL クエリを使用します。目的の出力を実現するには:

SELECT  a.nid,
        GROUP_CONCAT(b.name ORDER BY b.id) DepartmentName
FROM    Notes a
        INNER JOIN Positions b
            ON FIND_IN_SET(b.id, a.forDepts) > 0
GROUP   BY a.nid
ログイン後にコピー

説明:

  • GROUP_CONCAT 関数は、Positions テーブルの「name」列の値を連結するために使用されます。 Notes テーブルの各行。
  • ORDER BY 句により、部門名の順序が保証されます。
  • FIND_IN_SET 関数は、Positions テーブルの部門 ID が Notes テーブルの 'forDepts' 列に存在するかどうかを確認します。存在する場合、対応する行が結合に含まれます。
  • GROUP BY 句は、Notes テーブルの「nid」列によって結果をグループ化し、各メモに関連付けられたすべての部門名を効果的に結合します。

このクエリを実行すると、Notes テーブルの 'forDepts' 列の値が対応するカンマ区切りの値に置き換えられた、目的の出力を取得できます。役職テーブルからの部門名。これにより、提供された PHP コードを使用してデータを Excel ファイルにエクスポートすることが容易になります。

以上がSQL でカンマ区切り値を使用してテーブルを結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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