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

Barbara Streisand
リリース: 2024-11-12 07:41:01
オリジナル
328 人が閲覧しました

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

カンマ区切りの結合フィールドを使用したテーブルの結合

カンマ区切りのリストを含むテーブルを操作する場合、従来の結合を使用して結合を実行するのは困難になります。メソッド。この場合、「カテゴリ」と「ムービー」という 2 つのテーブルが存在します。「ムービー」テーブルの「カテゴリ」列には、カンマで区切られた複数のカテゴリ ID が保持されます。

「カテゴリ」列の生の ID の代わりに、対応するカテゴリ名を確認するには、次の SQL クエリを利用できます。

select
    m.id,
    group_concat(c.name)
from
    movies m
    join categories c on find_in_set(c.id, m.categories)
group by
    m.id
ログイン後にコピー

このクエリは、find_in_set() 関数を使用して、「カテゴリ」列に指定されたカテゴリ ID があるかどうかを判断します。 category」テーブルは、「m.categories」フィールドに格納されているカンマ区切りのリスト内に存在します。 「カテゴリ」テーブルの各候補カテゴリを「m.categories」値に対して繰り返しチェックすることで、クエリは一致するカテゴリを特定します。

次に、group_concat() 関数を使用して、一致するカテゴリ名を配列に集計します。 、それらを結果セットの各行の単一の文字列フィールドに連結します。最後に、クエリは結果を「m.id」列でグループ化し、各映画 ID が出力に 1 回だけ表示されるようにします。

その結果、このクエリは、ファイル内のカンマ区切りのカテゴリ ID を効率的に置き換えます。対応するカテゴリ名を含む「映画」テーブル。従来とは異なる結合フィールドを持つテーブルで結合操作を効果的に実行します。

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

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