json - Postgresql 错误:用作表达式的子查询返回多行
问题描述
我正在写这段代码:
select row_to_json(t)
from (
select json_agg(A) from (
select DISCIPLINE.D_ID,DISCIPLINE.D_NAME AS Discipline_Name,
(
select json_agg(B) from
(
select CATEGORY.C_ID,CATEGORY.C_NAME,
(
select json_agg(C) from
(
select SUB_CATEGORY.SC_ID,SUB_CATEGORY.SC_NAME
from SUB_CATEGORY
WHERE SUB_CATEGORY .C_ID=CATEGORY.C_ID
)C
)
from CATEGORY
WHERE CATEGORY.D_ID=DISCIPLINE.D_ID
)B
)
from DISCIPLINE
)A
)t
我收到此错误:
错误:用作表达式的子查询返回多行
如何解决这个问题?
解决方案
可能是您的内部子查询返回多于一行,因此如果需要,您应该添加限制 1
select SUB_CATEGORY.SC_ID,SUB_CATEGORY.SC_NAME
from SUB_CATEGORY
WHERE SUB_CATEGORY .C_ID=CATEGORY.C_ID
LIMIT 1
所以
select row_to_json(t)
from (
select json_agg(A) from (
select DISCIPLINE.D_ID,DISCIPLINE.D_NAME AS Discipline_Name, (
select json_agg(B) from (
select CATEGORY.C_ID,CATEGORY.C_NAME, (
select json_agg(C) from (
select SUB_CATEGORY.SC_ID,SUB_CATEGORY.SC_NAME
from SUB_CATEGORY
WHERE SUB_CATEGORY .C_ID=CATEGORY.C_ID
LIMIT 1
) C
) from CATEGORY WHERE CATEGORY.D_ID=DISCIPLINE.D_ID
) B
) from DISCIPLINE
) A
) t
推荐阅读
- node.js - 代表 Connect 帐户使用 Stripe 的 JS SDK 的正确方法
- powershell - 从 powershell 与第二个浏览器选项卡交互
- xamarin - 当前上下文中不存在名称“PermissionsImplementation”
- c++ - SSE2 内在函数在哪里存储结果?
- swift - GPU 在同时运行密集着色器和 iOS 动画时挂起
- asp.net - 如何将自定义库添加到 ASP.NET MVC
- excel - 根据源单元格更改图表颜色(条形图)(使用条件格式和 VBA)
- javascript - 续集:在 DATE 使用 LIKE
- c++ - 包括具有一级间接的标题?
- javascript - 如何从firebase实时更新状态?| 反应.js