Вопрос

Явно указать по какому столбцу join-ить таблицу

Добрый день. У меня в таблице Account лежат два внешних ключа на таблицу Contact. Подскажите, как явно указать столбец для джойна. Это:

esq.addColumn("=Contact.Name", "ContactName");

возвращает не верные значения. К тому же, хотелось бы использовать inner join, но запрос летит в виде:

 

LEFT OUTER JOIN [dbo].[Contact] [PrimaryContact] WITH(NOLOCK) ON ([PrimaryContact].[Id] = [UsrAccount].[PrimaryContactId])

* Из примера выше, нужно джойнить по столбцу OwnerId вместо PrimaryContact

Нравится

5 комментариев
Лучший ответ

Вот статья https://academy.terrasoft.ru/docs/7-17/developer/front-end_development/…

 

Не надо писать равно.

 

Если у вас root таблица в esq это Account в нем к примеру есть поле Ответственный Owner справочник контакта. Вам надо получить какое-то из полей Owner.

 

esq.addColumn("Owner.Id", "OwnerId");

esq.addColumn("Owner.Name", "OwnerName");

 

Также если в контакте тоже есть справочное поле Lookup у справочника которого есть поле Name можно провалится и дальше 

esq.addColumn("Owner.Lookup.Name", "OwnerLookupName");

* Из примера выше, нужно джойнить по столбцу OwnerId вместо PrimaryContact

 PrimaryContactId*

Два внешних ключа это два справочных поля со справочником контакта в объекте контрагент? 

Полозюков Евгений Петрович, верно. Один указывает на Основной контакт контрагента, второй на Менеджера работающего с контрагентом.

Другими словами, запрос:

 

SELECT offer.* from UsrCommercialOffer as offer
INNER JOIN Account as acc
    ON offer.UsrAccountId = acc.Id
WHERE acc.OwnerId = @currentUserId

Его нужно написать на фронте. 

Вот статья https://academy.terrasoft.ru/docs/7-17/developer/front-end_development/…

 

Не надо писать равно.

 

Если у вас root таблица в esq это Account в нем к примеру есть поле Ответственный Owner справочник контакта. Вам надо получить какое-то из полей Owner.

 

esq.addColumn("Owner.Id", "OwnerId");

esq.addColumn("Owner.Name", "OwnerName");

 

Также если в контакте тоже есть справочное поле Lookup у справочника которого есть поле Name можно провалится и дальше 

esq.addColumn("Owner.Lookup.Name", "OwnerLookupName");

Показать все комментарии