【问题标题】:How to form SOQL query for multiple objects in salesforce如何在 Salesforce 中为多个对象形成 SOQL 查询
【发布时间】:2021-08-27 17:39:20
【问题描述】:

Salesforce 中有 5 个对象:contactaccountaccount_contact__cuserrecordtype。 下面是需要转换为 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 语句,则会出现错误。

【问题讨论】:

  • account_contact_c 是不是第一个查询?为什么要添加另一个 SELECT 语句?您的意思是“在第二个查询中” - 这是嵌套 SQL 吗?在嵌套 SQL 中当然不能有第二个字段。将示例数据以及所需的输出显示为文本表。
  • @june7 联系人是第一个查询。需要连接其他对象才能从中获取少量字段。类似于用户对象的名称,记录类型对象的日期。

标签: sql salesforce soql


【解决方案1】:

我们不了解您的所有关系,例如 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

“正常样式” - 您从自定义关系表开始,然后“向上”进入 acc 和 con

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多