【发布时间】:2012-04-24 08:56:20
【问题描述】:
我正在尝试编写一个 soql 查询来获取所有联系人和潜在客户的特定电子邮件。现在,我可以编写两个不同的查询来搜索联系人和潜在客户。但这是否可以使用单个查询(搜索多个对象)。
我正在寻找单个查询的原因是,我在 javascript 中使用 salesforce REST API,我不希望两个单独的联系人和潜在客户搜索请求。
【问题讨论】:
标签: salesforce soql
我正在尝试编写一个 soql 查询来获取所有联系人和潜在客户的特定电子邮件。现在,我可以编写两个不同的查询来搜索联系人和潜在客户。但这是否可以使用单个查询(搜索多个对象)。
我正在寻找单个查询的原因是,我在 javascript 中使用 salesforce REST API,我不希望两个单独的联系人和潜在客户搜索请求。
【问题讨论】:
标签: salesforce soql
SOQL 不允许像 SQL 那样使用 UNION 语句,因此 (currently) 无法在一个查询中执行此操作。
由于您希望减少您的请求,您可以创建一个Apex web service,然后您可以从您的 javascript 代码中调用它。 Apex 部分将执行您的两个 SOQL 语句,然后返回结果。这仍然是两个查询,但在一个请求中完成。我不能确定使用这种方法是否会提高性能,这取决于许多因素。但这是你可以试验的东西。希望这会有所帮助。
【讨论】:
谢谢亚当。这绝对是一条路。但我只是尝试了 SOSL 而不是 SOQL,workbench.developerforce.com 对我的查询帮助很大。我能够触发一个简单的 SOSL 查询来搜索 Lead 和 Contact 对象。查询是
FIND {test@email.com} IN EMAIL FIELDS RETURNING Contact, Lead
【讨论】:
SOSL 与 SOQL 有不同的限制和问题。对于这种情况,它看起来是最好的选择,但您应该知道两者之间的区别。每当我需要从多个对象类型中搜索文本字段时,我都会考虑使用 SOSL。但请始终牢记限制。
【讨论】: