0

我正在使用python 的simpleSalesforce库来查询 SalesForce。

我正在查看 SalesForce 中的两个不同对象:Account 和 Opportunity(父子)。机会对象中有一个 accountId。

我正在尝试在两者之间执行内部连接并选择结果(来自两个对象的字段)。正常的 SQL 语句如下所示:

SELECT acc.Name, opp.StageName
FROM Account AS acc
JOIN Opportunity AS opp ON acc.Id = opp.AccountId

我不确定如何将这种查询转换为 SOQL。

4

2 回答 2

2

关于 SOQL 的几点说明:

  • 不允许使用别名
  • 不允许显式连接

但是考虑到这一点,仍然可以通过直接使用所需字段名称作为对象关系的“属性”来获得所需的结果。例子:

SELECT account.Name, Name, StageName FROM Opportunity

它将在一次查询中获取相关帐户名称、机会名称和机会阶段名称。

只要您的基础对象上的字段是类型Lookupor Master-Detail,您就可以使用这种类型的关系。在自定义字段的情况下,您切换__c__r虽然。

示例:机会与自定义对象有关系Address__c,我们想知道这些机会在哪个城市和国家:

SELECT Address__r.Country__c, Address__r.City__c,Name, StageName from Opportunity

于 2020-01-29T13:54:58.907 回答
2

Salesforce 不允许任意联接。您必须编写关系查询来遍历 Salesforce 架构中的预定义关系。

在这里,你会做类似的事情

SELECT Name, (SELECT StageName FROM Opportunities) 
FROM Account

不需要或确实允许显式连接逻辑。另请注意,您的返回值将是结构化的嵌套 JSON 对象 - Salesforce 不会像 SQL 查询那样返回扁平行。

于 2020-01-08T16:24:39.903 回答