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

如何构建三级对象的SOQL查询?获取Object2子对象的Id与名称

正确的SOQL写法说明

首先明确你的对象层级:主父对象 → 子对象 → Object2子对象,以下分两种场景给出正确写法:

场景1:从主父对象出发,关联查询全层级对象(含最底层的Object2子对象)

假设你的对象API名和关系名称如下(请替换为你实际的名称):

  • 主父对象API名:MainParent__c
  • 主父对象到子对象的子关系API名:ChildObjects__r(子对象API名通常为Child__c,子关系名默认是Childs__r或自定义名称)
  • 子对象到Object2子对象的子关系API名:Object2Childs__r(Object2子对象API名通常为Object2Child__c)

正确的嵌套子查询写法:

SELECT Id, Name,
  (SELECT Id, Name,
    (SELECT Id, Name FROM Object2Childs__r)
  FROM ChildObjects__r)
FROM MainParent__c

这条语句会返回所有主父对象记录,同时带出每个主父关联的子对象,以及每个子对象关联的Object2子对象的Id和名称。

场景2:直接查询Object2子对象的Id和名称(无需关联上层对象)

如果不需要上层对象的数据,直接查询最底层的Object2子对象即可:

SELECT Id, Name FROM Object2Child__c

(将Object2Child__c替换为你实际的Object2子对象API名)

原查询的错误点

  1. SOQL子查询语法错误:子查询必须使用关系API名称(而非child of object_2这种描述性写法),格式为(SELECT 字段 FROM 关系名称)。
  2. 子查询与父字段的分隔错误:子查询需要和父对象的字段用逗号分隔,原查询中缺少逗号。
  3. 对象名称不规范:from child中的child应该是子对象的正式API名称(如Child__c),而非别名或描述词。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 03:52:35