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

存储过程子查询返回多行报错,期望生成指定重复行结果

解决SQL子查询返回多行的报错并实现期望结果

报错原因

你写的Developer字段子查询返回了多个值(比如ApplicationId=100对应两个Developer记录),但用=将子查询结果赋值给字段时,SQL只允许子查询返回单个值,因此触发报错:

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

解决方案

改用**表连接(JOIN)**的方式关联三个表,自然生成Name重复、Developer不同的多行结果,替代原来的子查询写法:

SELECT
    r.Name,
    pd.Description AS Developer
    -- 如需Mobile、Title字段,可在此处添加对应的关联查询逻辑
FROM Records r
JOIN Company c ON r.ApplicationId = c.Id
JOIN ParameterDeveloper pd ON c.WorkId = pd.Id
-- 若仅需Sky的结果,可添加WHERE条件过滤
WHERE r.Name = 'Sky'

逻辑验证

结合你的表数据:

  1. Records表中Sky的ApplicationId为100
  2. Company表中Id=100对应的WorkId是100
  3. ParameterDeveloper表中Id=100对应两条记录:Oracle和Ibm
    通过JOIN关联后,会生成两条Name为Sky的记录,分别对应两个Developer值,与你期望的结果完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:20:19