【发布时间】:2011-08-20 13:15:41
【问题描述】:
我有 3 个表,一个父表和 2 个子表。假设 Mother_c 是父母。那么 Child_c 和 Pet_c 是 2 个子表,它们具有指向 Mother_c 的主从关系指针。
我有来自 Child_c 的一行的 ID,我想从 Pet_c 中检索与该单个 Child_c 行的 Mother_c 对应的所有行_c .
我想知道这是否可以在一个 SOQL 查询中实现?
【问题讨论】:
标签: salesforce soql
我有 3 个表,一个父表和 2 个子表。假设 Mother_c 是父母。那么 Child_c 和 Pet_c 是 2 个子表,它们具有指向 Mother_c 的主从关系指针。
我有来自 Child_c 的一行的 ID,我想从 Pet_c 中检索与该单个 Child_c 行的 Mother_c 对应的所有行_c .
我想知道这是否可以在一个 SOQL 查询中实现?
【问题讨论】:
标签: salesforce soql
是的,这完全可以使用半连接 SOQL。我用这样的标准 CRM 对象对此进行了测试:
SELECT Id,
(SELECT Id FROM Cases)
FROM Account
WHERE Id IN (SELECT AccountId
FROM Contact
WHERE Id = '0036000000qCwp9'
)
要引导您完成此操作,使用给定的联系人 ID,您首先找到父帐户,然后向下遍历到子案例。在您使用自定义对象的示例中,它会非常相似,但会使用 __r 自定义关系名称:
SELECT Id,
(SELECT Id FROM Pet__r)
FROM Mother__c
WHERE Id IN (SELECT Mother__c
FROM Child__c
WHERE Id = '003a000000qCwp9'
)
【讨论】: