如何在 Salesforce 中执行 JOIN (SOQL) - 简单 Salesforce(Python 库)

Dom*_*vic 11 python join salesforce soql simple-salesforce

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

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

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

SELECT acc.Name, opp.StageName
FROM Account AS acc
JOIN Opportunity AS opp ON acc.Id = opp.AccountId
Run Code Online (Sandbox Code Playgroud)

我不知道如何将这种查询转换为 SOQL。

gsc*_*ott 15

关于 SOQL 的几点说明:

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

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

SELECT account.Name, Name, StageName FROM Opportunity

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

只要基础对象上的字段属于Lookup或类型Master-Detail,您就可以使用这种类型的关系。对于自定义字段,您可以将其切换__c__r“虽然”。

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

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


Dav*_*eed 8

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

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

SELECT Name, (SELECT StageName FROM Opportunities) 
FROM Account
Run Code Online (Sandbox Code Playgroud)

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