【问题标题】:MySQL view - many to one relationship in one rowMySQL视图 - 一行中的多对一关系
【发布时间】:2014-09-13 21:29:39
【问题描述】:

我有一个保存电影信息的表。它有ID,标题等。我有另一个名为类别的表,其中有可用的类别;动作,戏剧等。 每部电影可以分为许多类别。所以我创建了一个视图并加入了这些表。现在,即使电影是重复的,视图也会为每个类别显示一行。 我需要为每部电影设置一行,并有如下类别:“动作、戏剧、喜剧”(基本上是 tbl_movies_categories 中的所有类别)。

我应该如何加入表格/创建视图来实现这一点?

【问题讨论】:

  • 在 MySQL 文档中查找 group_concat()

标签: mysql view


【解决方案1】:

这是正确的方法: 按唯一 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`

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    相关资源
    最近更新 更多