我正在运行嵌套查询
SELECT Id, Name, Account.Name,
(SELECT Id, OrderItemNumber, Product2.Name
FROM OrderItems)
FROM Order
这只有 1 层深。 有没有一个例子可以告诉我如何在 SOQL 中进行 3 到 5 级的深度选择?
SOQL 的局限性在于,像您所示的子查询只允许在单个级别上使用。
但是,如果你自下而上,你可以达到更高(5 个级别)。
例如我们像这样重写您的查询:
SELECT Id, OrderItemNumber, Product2.Name,
Order.Id, Order.Name, Order.Account.Name,
Order.Account.Parent.Name,
Order.Account.Parent.Parent.Name,
Order.Account.Parent.Parent.Parent.Name,
Order.Pricebook2.Name
FROM OrderItem
获取一些帐户层次结构。 它像 SOQL 一样笨重,但你明白了
Salesforce 将深度限制从 1 级增加到 5 级:https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_relationships_query_using.htm
SELECT Name,
(SELECT LastName,
(SELECT AssetLevel,
(SELECT Description,
(SELECT LineItemNumber FROM WorkOrderLineItems)
FROM WorkOrders)
FROM Assets)
FROM Contacts)
FROM Account