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

PostgreSQL查询多流派电视剧 实现多表关联及流派拼接咨询

完整查询语句

PostgreSQL 中对应 MySQL group_concat 功能的内置函数为 string_agg,结合三表关联的完整查询语句如下:

SELECT
  tl.id AS 电视剧id,
  tl.title AS 剧集名称,
  tl.episodes AS 总集数,
  string_agg(g."genre name", '、' ORDER BY g."genre name") AS 所属流派
FROM tvshow_list tl
-- 关联中间表
LEFT JOIN genres_in_tvshows git 
  ON tl.id = git."tvshow id"
-- 关联流派表
LEFT JOIN genres g 
  ON git.genreid = g.id
-- 按剧集维度聚合
GROUP BY tl.id, tl.title, tl.episodes
-- 可自定义排序规则,此处按上映年份倒序、名称正序排列
ORDER BY tl.year DESC, tl.title;

说明

  • 关联逻辑采用左连接,即使某部剧集还没有标注任何流派,也会在结果中返回,对应流派字段为NULL;如果只需要返回至少标注了1个流派的剧集,将两处LEFT JOIN替换为INNER JOIN即可
  • 你给出的字段名包含空格(genre name、tvshow id),PostgreSQL 查询带空格的字段必须用双引号包裹;如果实际建表时你已经将字段调整为下划线命名(genre_name、tvshow_id),直接去掉双引号写对应字段名即可
  • string_agg的第二个参数为拼接分隔符,可根据需求替换为逗号、斜杠等任意字符,函数内的ORDER BY可以控制流派的展示顺序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:57:05