Столкнулся с проблемой написания запроса к трем таблицам. Я хочу для начала связать два highload block'a, а потом присоединить третью таблицу по ключу второй таблицы. Каким образом это можно сделать?
Но такой запрос не срабатывает пишет, что нужно использовать только this и ref. Но я не смог найти примеров, которые я бы понял чтобы написать запрос связывающий три таблицы. При первом JOIN'е в селекте появляется STORE_ID, по которому я хочу присоединиться к таблица StoreProduct, для получения остатков. Чтобы не писать несколько запросов а потом прогонять их в цикле, слишком много ресурсов уходит, цикл до 10к элементов
Код |
---|
$query = new \Bitrix\Main\Entity\Query($entity_data_class_notification); $query->registerRuntimeField('test', [ 'data_type' => $entity_data_class, 'reference' => ['=this.UF_SITE_ID' => 'ref.UF_SITE'], ])->registerRuntimeField('test2', [ 'data_type' => '\Bitrix\Catalog\StoreProductTable', 'reference' => ['=test2.STORE_ID' => 'test.UF_STORE_ID'], ])->setSelect($select)->where($filter)->setOrder(['ID']); |
Но такой запрос не срабатывает пишет, что нужно использовать только this и ref. Но я не смог найти примеров, которые я бы понял чтобы написать запрос связывающий три таблицы. При первом JOIN'е в селекте появляется STORE_ID, по которому я хочу присоединиться к таблица StoreProduct, для получения остатков. Чтобы не писать несколько запросов а потом прогонять их в цикле, слишком много ресурсов уходит, цикл до 10к элементов