当前位置: 首页 > 面试题库 >

如何从PostgreSQL的子表中选择数据?

罗淮晨
2023-03-14
问题内容

在PostgreSQL 9.4中,我如何像这样检索json对象

parentTableFirstProp: 'string',
parentToChildReference: [
    {childTableFirstProp: 'another string'},
    {childTableFirstProp: 'yet another string'}
}]

而不是这样:

[{
    parentTableFirstProp: 'string',
    childTableFirstProp: 'another string',
},{
    parentTableFirstProp: 'string',
    childTableFirstProp: 'yet another string'
}]

我是否总是必须进行2个选择查询,并通过使用别名将一个查询插入另一个查询?您能否举一个例子:您如何将SELECT父表及其子表一起显示?

UPD 1

SELECT
"public"."ParentTable".*,
"public"."ChildTable".*
FROM
"public"."ParentTable"
RIGHT JOIN "public"."ChildTable"
ON "public"."ParentTable"."childReference"

返回此:

[{
        parentTableFirstProp: 'string',
        childTableFirstProp: 'another string',
    },{
        parentTableFirstProp: 'string',
        childTableFirstProp: 'yet another string'
    }]

UPD 2
创建表语句:

CREATE TABLE "public"."ParentTable" (
    "id" varchar(36) NOT NULL COLLATE "default",
    "parentTableFirstProp" varchar(100) NOT NULL COLLATE "default",
    "parentToChildReference" varchar COLLATE "default"
)

CREATE TABLE "public"."ChildTable" (
    "id" varchar(36) NOT NULL COLLATE "default"
    "childTableFirstProp" varchar(100) NOT NULL COLLATE "default",
)

问题答案:

PostgreSQL 9.2中的一项新功能,但我没有测试查询:

我从这里开始学习本教程。

select row_to_json(t)
from (
select ParentTable.parentTableFirstProp, (
select array_to_json(array_agg(row_to_json(child)))
  from (
    select childTableFirstProp
    from ChildTable
    where ChildTable.id=ParentTable.parentToChildReference
  ) child

  ) as parentToChildReference
from ParentTable
) t


 类似资料:
  • 我有两个问题: 从表1中选择*,其中my\u值介于值1和值2之间 从表2中选择值1、值2 表2中的value1和value2的集合是唯一的。如何在第一个查询的where语句中插入查询2的所有结果集?

  • 问题内容: 我有以下表名称模板,例如,一对夫妇,名字和数字相同:fmj.backup_semaforo_geo_THENUMBER,例如: 可以说我需要从每个表中选择一列,该表以’fmj.backup_semaforo_geo_%’过滤器成功执行,我尝试这样做: 但是我正在获取all_tables表名称数据: 我如何在不获取all_tables输出的情况下实现这一目标? 谢谢。 问题答案: 大概您

  • 问题内容: 嘿,我在PostgreSql中有2个表: 和一些数据: 文件: 更新: 因此,所有更新都指向同一文档,但是所有更新的日期都不同。 我想做的是从文档表中进行选择,但还要包括基于日期的最新更新。 这样的查询应如何显示?这是我目前拥有的,但我列出的是所有更新,而不是我需要的最新更新: 包括; 我在查询中需要这个的原因是我想按更新模板中的日期排序! 编辑:此脚本已大大简化,因此我应该能够创建一

  • 问题内容: 我希望下面的代码向我显示表中交换列为null但结果集显示0行的所有记录。知道为什么吗? 问题答案: 也许您将其解释为不相同,但请尝试此操作 但如果仍然无法获得价值,也许它上面有空格,那么您应该这样做,

  • 我有一个名为<code>cars_denorm</code>的非规范化表,它包含以下列: 在规范化这些数据的最后,我为、color列创建了单独的表——这三个表由 我正在尝试填充一表,该表是列 并且引用来自< code>make 、< code>model和< code>color表的id。基本上,我希望遍历< code>cars_denorm表中的每一行,并为每一行查询< code>make 、<

  • 我刚开始冬眠。我有两张桌子,有一对多的关系。有两个表格: 这是一个父类,它与图像表有一对多关系 现在我想使用父类的id(即:pashminaId)从类中选择一个 如: 选择IMAGE_NAMETBL_IMAGEPASHMINA_ID='some_digit'; 我怎么能在图像类中传递pashminaId,因为没有它只有一个父类的对象创建。 那么,我如何在Hibernate中实现这一点? 谢谢!希望