Получаю элементы инфоблока и значение их свойства типа "Список".
Как на примере этого кода использовать JOIN, чтобы сократить количество запросов?
Код |
---|
use Bitrix\Iblock\ElementTable; use Bitrix\Iblock\PropertyEnumerationTable; use Bitrix\Iblock\ElementPropertyTable; $idArray = []; $resultObj = ElementTable::getList([ 'select' => ['ID'], 'filter' => ['IBLOCK_ID' => 1, "IBLOCK_SECTION_ID" => 1, 'ACTIVE'=>'Y'], ]); while ($rowArray = $resultObj->fetch()) { $idArray[] = $rowArray['ID']; } $idElementArray = []; $resultObj = ElementPropertyTable::getList([ 'select' => ['VALUE'], 'filter' => [ 'IBLOCK_ELEMENT_ID' => $idArray, 'IBLOCK_PROPERTY_ID' => 1 ], ]); while ($rowArray = $resultObj->fetch()) { $idElementArray[] = $rowArray['VALUE']; } $resultObj = PropertyEnumerationTable::getList([ 'select' => ['VALUE'], 'filter' => ['ID' => $idElementArray], ]); while ($rowArray = $resultObj->fetch()) { $arResult[$rowArray['ID']] = $rowArray['VALUE']; } |
Как на примере этого кода использовать JOIN, чтобы сократить количество запросов?