カンマ区切り値を使用した複数の結合フィールドのクエリ
SQL で、カンマ区切りリスト (CSV) を含むテーブルを処理する場合それらのフィールドでは、結合を効果的に実行することが難しい場合があります。この記事では、映画テーブルのカテゴリ列に複数のカテゴリ ID が含まれる特定のシナリオについて説明します。目標は、カテゴリ テーブルから対応するカテゴリ名を取得する際に、カテゴリ ID を完全に除外することです。
次の表は、そのシナリオを示しています。 :
Table categories: -id- -name- 1 Action 2 Comedy 4 Drama 5 Dance Table movies: -id- -categories- 1 2,4 2 1,4 4 3,5
目的の結合を実行するには、find_in_set() 関数を group_concat() 操作と組み合わせて利用できます。クエリは次のとおりです。
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
クエリの説明:
結果の出力には、ムービー ID と対応するカテゴリ名が配列形式で表示されます。これにより、映画テーブルの CSV をデコードしなくても、関連するカテゴリに簡単にアクセスできるようになります。
以上がSQL でカンマ区切り値フィールドを使用してテーブルを結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。