【问题标题】:Can anyone explain to me this SOQL query?谁能向我解释这个 SOQL 查询?
【发布时间】:2011-03-31 13:03:49
【问题描述】:

我有一个 SOQL 查询。如果查询遍历关系,则字段列表可以包含子查询。例如:

SELECT Account.Name, (SELECT Contact.LastName FROM Account.Contacts) FROM Account

我无法理解“穿越关系”这句话,谁能解释一下?

【问题讨论】:

    标签: sql salesforce force.com soql


    【解决方案1】:

    我相信他们是说,如果它们有关系并且您使用子查询,您可以使用 SELECT 从与 FROM 子句中的表有关系的表中返回字段。在您的示例中,即使您的 FROM 是从“Account”中提取的,您也可以使用子查询从“Contact”表中返回“LastName”,因为那里存在关系(“Account.Contacts”)。

    【讨论】:

      【解决方案2】:

      在这种情况下,这意味着您可以从“one”端对象的查询中的“many”端调用一对多关系。实际上,它类似于 SQL 中的嵌套查询,基于顶部查询中游标的当前位置查询子表。区别主要在于结果集在 SQL 中以平面开头,而在 SOQL 中则以分层形式开始。

      为了更清楚,这个查询意味着:foreach 帐户加载名称并遍历其所有联系人以检索联系人的姓氏。如果一个帐户有 10 个联系人,您将获得一个主行,其联系人列表将包含 10 行

      【讨论】:

        【解决方案3】:

        不是有效的 sql。子查询应该有一个连接,否则它将返回多条记录,这将违反主查询每行一条记录的规则

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-11
          • 1970-01-01
          • 1970-01-01
          • 2011-02-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多