私は3つのテーブルを持っています。この例の目的のために、私は可能な限り簡素化します。サブクエリを使用せずにこのmysqlクエリを修正するにはどうすればよいですか?
最初のテーブルには映画IDと名前が含まれ、2番目のテーブルにはジャンルIDとジャンル名(アクション、ドラマなど)が含まれます。 3番目のテーブルには、複数の映画があるため、各映画に関連付けられたジャンルIDが格納されます。それは2列、genre_idとmovie_idを持っています。妖精の単純なもの。私はムービーのリストを各ムービーに関連付けられたジャンルのリストと共に出力しようとしています。
SELECT *
FROM movies
LEFT JOIN gen_pairs
ON movies.mov_id = gen_pairs.gen_movieid
LEFT JOIN categories
ON gen_pairs.gen_catid = categories.cat_id
GROUP BY mov_id
これは明らかに、gen_pairsテーブルに複数のものがあっても、各映画の単一のジャンルを出力します。各アイテムのサブクエリを実行せずに、ムービーごとにカンマ区切りのジャンルリストを表示するにはどうすればよいですか?
訂正:これは、任意の特定の映画の* ALL *ジャンルを、1つの行につき1つのジャンルに出力し、後者の対応するジャンルごとに映画の名前を繰り返します。 – vladr
GROUP BY句を忘れました。一定。 –