0

我在 Salesforce.com 中有 2 个自定义对象

一种是PersonAccount,一种是Accounts。

在默认的“帐户”对象中,我有一个名为 user_id 的字段

PersonAccount 充当连接表以将“帐户”链接到帐户

PersonAccount 在 Person 中查找 user_id Lookup(Account)

如何构建查询以检查帐户中的某些内容以查找帐户中的所有匹配项?

4

1 回答 1

0

目前,Salesforce 仅允许单级嵌套查询。它可以像下面这样完成:

[SELECT ID, Name, Field1 from Object__c WHERE Id IN ( SELECT Id FROM Object2__c WHERE Field2 = 'SomeValue')]

但是,对于联结对象,您实际上不需要使用嵌套查询。

不幸的是,您的描述不够清楚,无法理解您的特定对象设置,因此我将做出一些假设。

您有三个对象,Accounts__c(您的自定义 Accounts 对象)、PersonAccount__c(您的联结对象)和 Account(默认 Account 对象)。

PersonAccount__c 对象包含两个查找字段(对于真正的 Junction,它们应该是 Master-Detail)。第一个是 Accounts__c(我们称之为 lup_cust_accounts__c)。第二个是Account(我们称之为lup_account__c)。[顺便说一句,拥有 Accounts 和 Account 对象是一个非常糟糕的主意。它会搞砸你,因为 Salesforce 会自动将单词复数,然后你会混淆哪个是哪个。]

Salesforce 允许在 SOQL 查询中进行点关系查找。因此,如果您想在关联的 Account 对象的名称类似于“Test”时从自定义 Accounts 对象中获取 ID 和名称,您可以执行以下操作:

[SELECT lup_cust_accounts__r.Id, lup_cust_accounts__r.Name FROM PersonAccount__c WHERE lup_account__r.Name LIKE 'Test%'];

注意双下划线 r 而不是双下划线 c?这就是您指示参考(查找)而不是特定字段值的方式。

于 2015-12-23T16:35:48.750 回答