カンマ区切りの結合フィールドを使用したテーブルの結合
カンマ区切りのリストを含むテーブルを操作する場合、従来の結合を使用して結合を実行するのは困難になります。メソッド。この場合、「カテゴリ」と「ムービー」という 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 サイトの他の関連記事を参照してください。