select ID from MyObject__c WHERE Id IN (SELECT ParentId FROM ContentDocument)
думал, что это вот так просто [code]select ID from MyObject__c WHERE Id IN (SELECT ParentId FROM ContentDocument)[/code] но СФ не дает создавать такие subquery если есть идеи, то сначала попробуйте это в консоли, убедитесь что СФ дает выполниться квери :)
А почему делается фильтр по полю ParentId FROM ContentDocument, а не по полю EntityLinkedId FROM ContentDocumentLink ? Мы же шарим документ с помощью ContentDocumentLink. Одним запросом не получится а двумя вполне. Поправьте меня. List<ContentDocumentLink> contentDocumentLinks = [SELECT LinkedEntityId FROM ContentDocumentLink WHERE LinkedEntityId IN (SELECT Id FROM Account)]; Set<Id> accountIds = new Set<Id>(); for (ContentDocumentLink link : contentDocumentLinks) { accountIds.add(link.LinkedEntityId); } List<Account> accounts = [SELECT Id, Name FROM Account WHERE Id IN :accountIds];
select ID from MyObject__c WHERE Id IN(SELECT LinkedEntityId FROM ContentDocumentLink) Entity 'ContentDocumentLink' is not supported for semi join inner selects
все правильно, нужно использовать ContentDocumentLink хотя если посмотреть на эту схему: https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_erd_content.htm где там этот ContentDocumentLink? а он есть... но все равно вот так не получается: [code]select ID from MyObject__c WHERE Id IN(SELECT LinkedEntityId FROM ContentDocumentLink) Entity 'ContentDocumentLink' is not supported for semi join inner selects[/code] а код выше - он рабочий (обратите внимание что ContentDocumentLink такой капризный что требует хоть как-то отфильтроваться в квери), но задача была создать именно квери