我想在Name字段上创建两个自定义对象的连接。通常连接需要两个对象之间的查找或主 - 细节关系,但我只想进行文本匹配。
我认为这是Salesforce限制,但我找不到任何关于是否如此的文档。谁能证实这一点?
答案 0 :(得分:5)
是的,只有存在关系时,才能进行连接(带点符号或子查询)。并且关系(查找或主要细节)只能由Id进行。有几个“突变字段”(如Task.WhoId),但一般来说你不能在SOQL中编写JOIN,当然也不能使用文本列作为外键。
关系查询与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的验证规则可能会执行您所追求的目标。