首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:子查询只能返回一列

问错误:子查询只能返回一列
EN

Database Administration用户
提问于 2020-05-07 21:19:32
回答 1查看 14.8K关注 0票数 3

我有两个桌子,一个是Category,另一个是Product。

表描述是

类别

  • 名字
  • 描述
  • parent_id (自引用键)(可达3级)

产品

  • 名字
  • 描述
  • 类型
  • category_id (外键到类别表),我想在一个单独的目录上显示所有的类别以及相关的产品。因此,对于获取关联类别,我使用以下查询。我能够在自引用表中执行左联接,但无法获得产品数据列表,因为这是一个子查询,子查询只返回一个列。选择cat1.id,数组(选择名称、类型、product.category_id =cat1.id的产品描述为category_1_products_data,cat2.id,数组(选择名称,类型,描述从产品的product.category_id = cat2.id)为category_2_products_data,cat3.id,数组(选择名称,类型,将product.category_id =cat3.id的乘积描述为category_3_products_data ( cat1 ),左联接类别cat2,cat2.parent_id = cat1.id,左联接类别cat3,cat3.parent_id = cat2.id,其中cat1.parent_id为null;

错误:子查询只能返回一列第2行: cat1.id (从.

EN

回答 1

Database Administration用户

回答已采纳

发布于 2020-05-08 12:54:00

数组的所有元素都必须具有相同的类型;当带有子查询的构造数组时,最简单的执行方法是要求查询准确返回一列。

但是,您可以通过使用一个复合型使子查询返回一个类型为行构造函数的列:

代码语言:javascript
复制
ARRAY(SELECT ROW(name, type, description) FROM ...)
票数 9
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/266721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档