Сложный запрос возможен? - PullRequest
       7

Сложный запрос возможен?

2 голосов
/ 19 августа 2011

У меня есть 3 таблицы, родительская таблица и 2 дочерние таблицы.Допустим, Мать_ с является родителем.Тогда Child _c и Pet_ c - это две дочерние таблицы, которые имеют указатель отношения "основная-подробная информация" на Mother _c.

У меня есть идентификатор одной строки из Child_ cЯ хочу получить все строки из Pet _c, которые соответствуют Mother_ c этой отдельной строки Child _c.

Мне интересно, возможно ли это в одном SOQLзапрос

1 Ответ

2 голосов
/ 20 августа 2011

Да, это вполне возможно с SOQL-полусоединением. Я проверил это с помощью стандартных объектов CRM, таких как:

SELECT Id,
      (SELECT Id FROM Cases) 
FROM Account 
WHERE Id IN (SELECT AccountId 
             FROM Contact 
             WHERE Id = '0036000000qCwp9'
            )

Чтобы провести вас через это с указанным идентификатором контакта, сначала найдите родительскую учетную запись, а затем перейдите обратно к дочерним делам. В вашем примере с пользовательскими объектами это будет очень похоже, но вместо этого будут использоваться имена пользовательских отношений __r:

SELECT Id,
      (SELECT Id FROM Pet__r) 
FROM Mother__c 
WHERE Id IN (SELECT Mother__c 
             FROM Child__c 
             WHERE Id = '003a000000qCwp9'
            )
...