Salesforce и SOQL: доступ к объекту внука от деда - PullRequest
1 голос
/ 21 декабря 2011

Я пытаюсь получить доступ к объекту внука.

У меня есть 3 объекта,

     Opportunity,
          Quote,
              QuoteLineItems,

Возможность - это родитель для цитирования, а цитата - это родитель для QuoteLineItems.

К сожалению, написание запроса для этого оказывается сложной задачей.Я использую Force.com Explorer, и нет прямой связи между Opportunity и QuoteLineItems.Вы можете вкладывать операторы Select только на один уровень глубиной.

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

Выберите идентификатор, (выберите идентификатор из кавычек) Из возможности.

Каким-то образом мне нужно присоединиться к Quotelineitems в этом запросе.

Есть мысли?

Ответы [ 2 ]

3 голосов
/ 21 декабря 2011

Из документов API"В каждом указанном отношении в запросе может быть указан только один уровень отношения родитель-потомок."

Идя в другом направлении (от ребенка к родителю), вы можете пройти пять уровней. Итак, что-то вроде этого может работать для вас:

SELECT Id, Quantity, Quote.Name, Quote.Opportunity.Name FROM QuoteLineItem ...

0 голосов
/ 24 октября 2013

Я изо всех сил пытался понять это, и ответом на это сообщение было то, что, наконец, помогло мне понять.Здесь очень мало примеров!

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

(parent).(grandparent).(field)

(parent).(grandparent).(great-grandparent).(field)

Как уже отмечалось, вы можете пройти до 5 уровней.

Некоторые примеры (в том числе из ответа здесь):

Цепочка отношений от прародителя к родителю и потомку: Возможность - Цитата - QuoteLineItem

Пример запроса:

SELECT Id, Quantity, Quote.Name, Quote.Opportunity.Name FROM QuoteLineItem

Цепочка отношений от прародителя к родителю и потомку: Аккаунт - Bill_to_Contact__r (custom) - Цитата

Пример запроса:

SELECT Name, License_To_Contact__r.Name, Bill_To_Contact__r.Account.Name FROM Quote
...