在“名称”字段上查询两个自定义对象

时间:2012-12-13 08:30:05

标签: salesforce soql

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

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

1 个答案:

答案 0 :(得分: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 - 例如,请查看SOQL in apex - Getting unmatched results from two object types。这不是世界上最漂亮的东西,但它有效。如果你想尝试一些非常疯狂的东西 - SOSL,它会同时搜索你的2个物体吗?

报告 - 您应该没有问题按文字字段分组 - 这意味着joined report可能会为您提供您所追求的结果。自从Winter'13加入报告允许图表和出口以来,这是一个非常有限的因素......

轻松构建数据之间的链接 - 使用外部ID和upsert操作,尤其是当您计划轻松地从外部SF加载数据时。检查我对Can I insert deserialized JSON SObjects from another Salesforce org into my org?

的回答

唯一性约束 - 您仍然可以根据需要标记字段&唯一的。

检查允许值的“字典” - 使用VLOOKUP的验证规则可能会执行您所追求的目标。

相关问题