2

我想在名称字段上连接的两个自定义对象上创建一个连接。通常连接需要两个对象之间的查找或主从关系,但我只想进行文本匹配。

我认为这是 Salesforce 的限制,但我找不到任何文档说明是否如此。谁能证实这一点?

4

1 回答 1

5

是的,只有存在关系时,您才能进行连接(使用点表示法或作为子查询)。并且关系(查找或主详细信息)只能通过 Id 建立。有几个“突变字段”(如 Task.WhoId),但一般来说,您不能在 SOQL 中编写 JOIN,当然也不能使用文本列作为外键。

http://www.salesforce.com/us/developer/docs/soql_sosl/Content/sforce_api_calls_soql_relationships.htm#relate_query_limits

关系查询与 SQL 连接不同。您必须在对象之间建立关系才能在 SOQL 中创建联接。

不过有一些解决方法。为什么你需要加入?

Apex / SOQL - 看看apex 中的 SOQL - 例如,从两种对象类型中获得无与伦比的结果。不是世界上最漂亮的东西,但它确实有效。如果您想尝试一些真正疯狂的事情 - SOSL会同时搜索您的 2 个对象?

报告- 按文本字段分组应该没有问题 - 这意味着合并的报告可能会为您提供您所追求的结果。由于 Winter'13 加入的报告允许图表和导出,这是一个相当大的限制因素......

轻松构建数据之间的链接- 使用外部 id 和 upsert 操作,特别是如果您计划轻松地从 SF 外部加载数据。检查我的答案我可以将来自另一个 Salesforce 组织的反序列化 JSON SObjects 插入我的组织吗?

唯一性约束- 您仍然可以将字段标记为必填且唯一。

检查允许值的“字典” - 使用VLOOKUP的验证规则可能会满足您的需求。

于 2012-12-13T10:02:09.027 回答