You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写MySQL查询实现三张表数据的GROUP_CONCAT合并?

MySQL多表关联分组合并流派查询方案

核心查询语句

SELECT 
    s.Movie AS 电影名称,
    GROUP_CONCAT(g.Genre_Name SEPARATOR ', ') AS 合并流派名称
FROM 
    `Show` s
JOIN 
    Show_index si ON s.IndexID = si.IndexID
JOIN 
    Show_genres g ON si.Genre_ID = g.Genre_ID
GROUP BY 
    s.ID, s.Movie;

关键逻辑说明

  • 表关联:通过IndexID关联Show和Show_index表,再通过Genre_ID关联Show_index和Show_genres表,建立三张表的关联关系
  • 流派合并:使用GROUP_CONCAT函数将同一电影对应的多个流派名称用逗号分隔合并成单个字符串,可通过修改SEPARATOR参数调整分隔符
  • 分组规则:按Show表的ID和Movie字段分组,确保每部电影只返回一行结果(避免因多流派产生重复行)

可选优化

如果存在同一电影对应重复流派的情况,可在GROUP_CONCAT中添加DISTINCT去重:

SELECT 
    s.Movie AS 电影名称,
    GROUP_CONCAT(DISTINCT g.Genre_Name SEPARATOR ', ') AS 合并流派名称
FROM 
    `Show` s
JOIN 
    Show_index si ON s.IndexID = si.IndexID
JOIN 
    Show_genres g ON si.Genre_ID = g.Genre_ID
GROUP BY 
    s.ID, s.Movie;

内容的提问来源于stack exchange,提问作者QWizQ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:42:10