在Python中与SOQL连接

2024-06-12 22:11:23 发布

您现在位置:Python中文网/ 问答频道 /正文

问题: 使用下面链接的文档,我尝试将两个SOQL表内部连接在一起,但没有成功。有人能帮我找出问题所在吗?假设它与语法(即括号)有关。提前谢谢

连接文档:

https://developer.salesforce.com/blogs/developer-relations/2013/05/basic-soql-relationship-queries.html

Python SOQL代码:

records =   sf.query_all('SELECT Event__c.Id, Event__c.Supplier__c,' +
                         ' Event__c.Promo_Models__c, Event__c.Lead_Promo_Model_Name__c,' +
                         ' Event__c.Event_Date__c, Consumer_Feedback__c,' +
                         ' (SELECT Contact.Gender__c, Contact.Ethnicity__c, Contact.CreatedDate FROM Contact)' +
                         ' FROM Event__c' +
                         ' WHERE Event__c.Lead_Promo_Model__c IN (SELECT Contact.Id FROM Contact)' +
                         ' AND Supplier__c LIKE \'ABCCompany%\'' +
                         ' AND Event_Date__c > 2019-06-30' + 
                         ' AND Event_Date__c < 2020-07-01', include_deleted=False)

df_sf = pd.DataFrame(records['records'])

错误:

文件“”,第10行 '其中Event__c.Lead_Promo_Model__c(从联系人中选择Contact.Id)'+ ^ SyntaxError:无效语法


Tags: andfrom文档eventiddeveloperdatemodel
1条回答
网友
1楼 · 发布于 2024-06-12 22:11:23

如果使用了从内置对象到自定义对象的关系,那么您需要阅读此文档页面Understanding Relationship Names, Custom Objects, and Custom Fields上的示例

您需要找到与Contact有关系的自定义字段Event__c.Lead_Promo_Model__c的字段定义(此关系是WHERE条件的结果),并阅读“相关列表标签”和“子关系名称”行。默认情况下,两者都可能是“联系人”,但第一个可以是任何字符串,第二个可以是任何API名称。然后在“子关系名称”项中添加“\uu\r”

(SELECT Contact.Gender__c,... FROM Contact)替换为(SELECT Contact.Gender__c,... FROM Contact__r)请参见替换的Contact__r。就这些

我希望所有其他部件都是正确的,或者可以很容易地由您修复。没有其他人知道您的自定义字段名称。您可以验证除了嵌套的SELECT之外的所有功能是否正常工作,然后添加一个子查询,其中包含本机字段... (SELECT Contact.Id FROM Contacts__r) ...,最后还包括联系人的自定义字段

文档中的第二个屏幕截图在没有“相关列表标签”的情况下很少过时,但它对SOQL并不重要

相关问题 更多 >