如何在 salesforce SOQL 中查询查找

How to query a lookup on a lookup in salesforce SOQL

我有一个记录类型的案例,它查找了一个机会,该机会查找了客户。当查询是 运行 和 workbench 时,它工作正常,我可以获得帐户 - 但是当它的 运行 在顶点时,只有机会 ID 是 returned,而不是帐户.我是 salesforce 的新手,但这让我发疯 - 事实上查询工具和代码会 return 不同的信息超出了我的范围 - 任何建议都很好!

SELECT RelatedOpportunity__r.Account.Name
FROM Case
         

从顶点:

(Case:{RelatedOpportunity__c=0061k00000B5GqiAAF, Id=5001k00000FwaivAAB})

一切都以同样的方式查询,写你的代码“正常”。

System.debug(myCase) 专注于重要的内容,即“此”记录中真正的内容。它不会通过查找“向上”,也不会通过子查询(如果有的话)“向下”。它会过多地向调试日志发送垃圾邮件。

(好吧,甚至不是。这不是 System.debug 的错。它应该发出字符串。一个案例是一个 object,而不是一个字符串,所以 toString() 是呼吁它)

您可以 System.debug(myCase.RelatedOpportunity__r.Account); 并且您会得到您的名字。或者玩 System.debug(JSON.serializePretty(myCase));

更好 - 从一开始就尝试学习正确的方法。通过垃圾调试来检查代码的流程已经过时了。没有真正的 Apex 调试(你不能像 .NET 那样附加交互式调试器,不能像 JavaScript 那样添加断点和暂停执行)但是所有酷孩子都使用 https://trailhead.salesforce.com/en/content/learn/projects/find-and-fix-bugs-with-apex-replay-debugger/apex-replay-debugger-debug-your-code,检查一下.