我有一张包含电影信息的表格。它有ID,标题等。我有另一个名为类别的表,我有可用的类别;动作,戏剧等。 每部电影都可以分为多个类别。所以我创建了一个视图并加入了这些表。现在,即使重复影片,视图也会为每个类别显示一行。 我需要每部电影都有一行,并且类似于:'动作,戏剧,喜剧' (这基本上都是来自tbl_movies_categories的所有类别)。
我应该如何连接表/创建视图来实现这一目标?
答案 0 :(得分:0)
这是正确的方法: 分组按唯一ID,然后使用group_concat()将值连接在一起。
CREATE VIEW `vw_metadata` AS
select
`vw_movies`.`id` AS `id`,
...
group_concat(`vw_movies_categories`.`title_category`
separator ',') AS `categories`,
from
(`vw_movies`
left join `vw_movies_categories` ON (`vw_movies_categories`.`movie_id` = `vw_movies`.`id`))
group by `vw_movies`.`id`