计算结果数的SOQL子查询 [英] SOQL Subquery counting the number of results
本文介绍了计算结果数的SOQL子查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试创建一个SOQL查询,该查询根据是否有来自另一个链接对象的任何结果从一个对象中提取记录。以下是我正在尝试做的事情。
SELECT id, casenumber FROM case WHERE count(SELECT ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId = case.id) > 0
这将返回错误,
格式不正确的查询():
案例编号自案例WHERE计数(从内容文档链接中选择内容文档ID
^
第1行:第44列出错
意外标记:‘SELECT’
尝试了几次后,我不确定还能尝试什么。我知道SOQL有一些局限性,但我不确定这是不是其中之一。有谁有洞察力?谢谢。
推荐答案
通过多对多关系,先向下,然后向上。1个文档可以链接到多个案例,但只会浪费一次存储空间。
通常您会尝试这样的操作
SELECT Id, CaseNumber, Subject
FROM Case
WHERE Id IN (SELECT LinkedEntityId FROM ContentDocumentLink)
但它不会编译,有一些limitations。实验,最坏情况查询所有案例,并使用APEX查看相关列表?
SELECT Id, CaseNumber, Subject, (SELECT ContentDocumentId FROM ContentDocumentLinks LIMIT 1)
FROM Case
案例很有趣。链接到电子邮件的附件(如果您有电子邮件对案例)将显示在相关的文件列表中,但它们不会实际存在。完整的链接将是内容文档->;内容文档链接->;电子邮件消息->;案例。啊。CombinedAttach应该对此有所帮助,特别是只读related list/view/随便什么。
使用polymorphic soql还有一个想法,向后低音,但要试一试:
SELECT ContentDocumentId, TYPEOF LinkedEntity WHEN Case THEN Id, Subject, CaseNumber END
FROM ContentDocumentLink
WHERE LinkedEntityId IN (SELECT Id FROM Case)
这篇关于计算结果数的SOQL子查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文