Запрос Salesforce SOQL с самостоятельным соединением и связью (ContentDocument/ContentVersion)

Я пытаюсь написать запрос SOQL для извлечения некоторых записей Salesforce Content, и у меня возникают трудности с определением следующего шага. Я хочу исключить все версии документа, если настраиваемое поле любой версии этого документа имеет значение (не пустое). Вот уменьшенная версия того, что я пытаюсь сделать:

Select  Id, Title
From    ContentVersion
Where   ContentDocumentId Not In
        (
           Select ContentDocumentId,
           From   ContentVersion
           Where  Custom_Field__c != null
        )

Итак, я знаю, что вы не можете написать подзапрос, нацеленный на тот же объект, что и его внешний запрос, поэтому очевидно, что то, что я указал выше, не будет работать. Любые предложения о том, что будет работать?

Спасибо.


person Patrick    schedule 19.01.2012    source источник


Ответы (1)


Можете ли вы попробовать что-то вроде этого:

Select C.Id from ContentDocument C where 
    ID not in ( Select ContentDocumentId
        From   ContentVersion
        where Custom_Field__c != null)
person Łukasz Skrodzki    schedule 20.01.2012
comment
Хотя я думаю, что ответ на более широкий вопрос заключается в том, что вы не можете достичь истинного эквивалента самообъединения в одном операторе SOQL, ваше предложение здесь помогло мне найти приемлемое решение для моих целей. Спасибо! - person Patrick; 20.01.2012