カンマ区切りの結合フィールドを使用したテーブルの結合
データベース管理では、多くの場合、複数のフィールドを含むフィールドに基づいてテーブルを結合する必要があります。カンマ区切りの値。これにより、結合フィールドを除外し、代わりに関連テーブルから一致する値を選択するクエリを実行するときに問題が発生します。
このシナリオには、カテゴリと映画という 2 つのテーブルがあり、映画テーブルのカテゴリ列には次の内容が含まれています。カテゴリ ID のカンマ区切りのリスト。私たちの目標は、各映画のカテゴリを配列形式で取得するクエリを実行することです。
解決策
これを達成する 1 つの方法は、次の JOIN 操作を使用することです。 find_in_set() 関数を利用するサブクエリ。 find_in_set() 関数は、指定された値がカンマ区切りの文字列内に存在するかどうかをチェックします。
次のクエリは、カンマ区切りのカテゴリ ID に基づいて映画とカテゴリのテーブルを結合する方法を示しています。
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 (映画 ID) とカテゴリ (カテゴリ名の配列) の 2 つの列を持つテーブルです。 )。たとえば、出力は次のようになります:
id | categories |
---|---|
1 | Comedy,Drama |
2 | Action,Drama |
4 | Other,Dance |
以上がカンマ区切りの結合フィールドを使用してテーブルを結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。