如何在salesforce中对多个对象形成SOQL查询



Salesforce中有5个对象:contact,account,account_contact__c,user,recordtype。下面是需要转换为Salesforce SOQL查询的SQL查询

SELECT c.id,c.fname,c.lname,u.name, ac.desc, r.date 
FROM contact c 
LEFT JOIN user u on c.oid =u.sfid 
LEFT JOIN account_contact__c ac on c.sfid=ac.contact_id__c  
LEFT JOIN account a on a.sfid=ac.account_id__c 
LEFT JOIN recordtype r on a.recordtypeid =r.sfid and r.type=‘test’

我成功地连接了2个对象,但在第二个表中,我不能添加多个字段。

Select id,fname,lname 
from contact 
where id in (
select contact_id__c from account_contact__c
)

如果我尝试在account_contact__c中添加另一个SELECT语句,我会得到一个错误。

我们不知道您的所有关系,例如Contact-User。你需要什么?联系的主人吗?从该联系人创建的客户/合作伙伴社区用户?由用户创建/最后修改?

和Account_Contact__c表看起来很奇怪,为什么你不使用标准的AccountContactRelation。或者是正常的"上升"从联系人到客户

像这样的东西可以工作,但这真的取决于你需要什么。对于您的自定义表-不保证编译,您可能有不同的字段名称。

相关列表样式"-你从接触开始,往下走对你奇怪的自定义关系,然后"向上"。从关系到账户。

SELECT Id, FirstName, LastName, Owner.Name,
(SELECT Id, Account__r.Id, Account__r.Name, Account__r.RecordType.Name)
FROM Contact

"正常style"-你从你的自定义关系表开始,然后"向上"To acc and con

SELECT Id,
Contact__r.FirstName, Contact__r.LastName, Contact__r.Owner.Name,
Account__r.Name, Account__r.RecordType.Name
FROM Account_Contact__c

相关内容

  • 没有找到相关文章