Beatbox:从 SFDC 提取数据时如何添加 WHERE 子句?
Beatbox: How do I add a WHERE clause when pulling data from SFDC?
在 Pandas 中,我正在创建一个合并来自两个不同 Beatbox 查询的数据的数据框。首先,我提取所有商机数据,然后提取所有帐户数据,最后合并。
不过,我想通过仅提取存在于 oppty['AccountID'] 列中的帐户 ['ID'] 的数据来优化此过程,而不是提取整个帐户数据在合并之前。我该怎么做呢?
当前状态:
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')
由于我无法访问您的 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)")
在 Pandas 中,我正在创建一个合并来自两个不同 Beatbox 查询的数据的数据框。首先,我提取所有商机数据,然后提取所有帐户数据,最后合并。
不过,我想通过仅提取存在于 oppty['AccountID'] 列中的帐户 ['ID'] 的数据来优化此过程,而不是提取整个帐户数据在合并之前。我该怎么做呢?
当前状态:
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')
由于我无法访问您的 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)")