Beatbox:如何在从SFDC提取数据时添加WHERE子句?

2024-10-08 19:29:01 发布

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

在Pandas中,我创建了一个数据帧,它合并了来自两个不同Beatbox查询的数据。首先,我提取所有Opportunity数据,然后提取所有Account数据,然后合并。你知道吗

但是,我想优化这个过程,只为oppty['AccountID']列中存在的account['ID']拉取数据,而不是在合并之前拉取整个account数据。我该怎么做?你知道吗

当前状态:

query_result = svc.query("SELECT ID, AccountID FROM Opportunity")
records = query_result['records']
oppty = pd.DataFrame(records)

query_result = svc.query("SELECT ID, Website FROM Account")
records = query_result['records']
account = pd.DataFrame(records)

mylist = pd.merge(oppty, account, left_on='AccountID', right_on='ID', how='left')

Tags: 数据fromiddataframeaccountresultqueryselect
2条回答

因为我没有访问您的svc对象的权限,所以这只是一个建议。但是试试看

query_result = svc.query("""SELECT ID, AccountID FROM Opportunity
                            JOIN Account on Account.ID = Opportunity.AccountID""")

作为单个查询。你知道吗

这应该使用左内部联接来提取数据,该联接将忽略两个表中不匹配的行。它还可以加入SQL,通过让数据库服务器完成这项工作来减少数据库通信量(因此也减少了网络带宽),从而减少桌面客户机系统上的计算负载。你知道吗

您可以使用SOQL半联接将帐户查询限制为只查询那些有机会的帐户,例如

svc.query("SELECT ID,Website FROM Account where ID in (SELECT accountId FROM Opportunity)")

相关问题 更多 >

    热门问题