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

MSSQL 2019多表关联查询:合并多值为逗号分隔字段

MSSQL 2019 多表关联合并多行数据查询方案

正确查询语句

SELECT
    t.UUID,
    t.Body,
    t.[Desc], -- Desc是MSSQL保留关键字,需用方括号转义
    -- 合并关联的Image值,逗号分隔
    STRING_AGG(i.Image, ', ') AS Images,
    -- 合并关联的Doc值,逗号分隔
    STRING_AGG(d.Doc, ', ') AS Docs
FROM [text] t -- text是MSSQL保留关键字,需用方括号转义
LEFT JOIN content c_img ON t.UUID = c_img.UUID AND c_img.Type = 'image'
LEFT JOIN [image] i ON c_img.CatUUID = i.UUID
LEFT JOIN content c_doc ON t.UUID = c_doc.UUID AND c_doc.Type = 'doc'
LEFT JOIN doc d ON c_doc.CatUUID = d.UUID
GROUP BY t.UUID, t.Body, t.[Desc]

语句说明

  • 针对text、Desc这类MSSQL保留关键字,必须用方括号[]包裹,避免语法冲突
  • 使用STRING_AGG函数实现多行数据的逗号分隔合并(MSSQL 2017及以上版本原生支持)
  • 通过两次关联content表,分别筛选类型为image和doc的关联记录,再对接对应的image、doc表
  • 最后按text表的唯一标识及需查询字段分组,完成多行数据的单行合并

原SQL问题说明

你之前的查询存在两处核心错误:

  • JOIN语法不规范:LEFT OUTER JOIN content.UUID on text.UUID 写法不符合SQL关联规则,正确格式应为LEFT JOIN 表名 ON 关联条件
  • 缺少多行合并逻辑:未使用聚合函数将多条关联的image/doc值合并为单行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:55:17