我在Salesforce.com中有2个自定义对象
一个是PersonAccount,一个是Accounts。
在默认"帐户"对象我有一个名为user_id的字段
PersonAccount充当联结表以链接"帐户"帐户
PersonAccount在Person中为user_id查找(帐户)
进行查找如何构建查询以检查帐户中的某些内容以查找帐户中的所有匹配项?
答案 0 :(得分:0)
目前,Salesforce仅允许单级嵌套查询。它可以像下面那样完成:
[SELECT ID, Name, Field1 from Object__c WHERE Id IN ( SELECT Id FROM Object2__c WHERE Field2 = 'SomeValue')]
但是,使用联结对象,您实际上并不需要使用嵌套查询。
不幸的是,您的描述并不清楚,无法理解您的特定对象设置,因此我将做出一些假设。
您有三个对象:Accounts__c(您的自定义帐户对象),PersonAccount__c(您的联结对象)和Account(默认的Account对象)。
PersonAccount__c对象包含两个查找字段(对于真正的连接,它们应该是Master-Detail)。第一个是Accounts__c(我们称之为lup_cust_accounts__c)。第二个是账户(我们称之为lup_account__c)。 [另外,拥有一个帐户和帐户对象是一个非常糟糕的主意。它会搞砸你,因为Salesforce会自动复数单词,然后你会对哪个单词感到困惑。]
Salesforce允许在SOQL查询中进行点关系查找。因此,如果您想在关联的帐户对象的名称类似于"测试"时从自定义帐户对象获取ID和名称,您可以执行以下操作:
[SELECT lup_cust_accounts__r.Id, lup_cust_accounts__r.Name FROM PersonAccount__c WHERE lup_account__r.Name LIKE 'Test%'];
注意双下划线r而不是双下划线c?这就是指示引用(查找)而不是特定字段值的方式。