Подскажите, пожалуйста.
Есть ИБ 2.0 (свойства в таблице "b_iblock_element_prop_s1") $iblockId и раздел $iblockSectionId.
У элементов ИБ есть свойство "MY_PROPERTY" (тип список, всего одно значение "Y").
Нужно выбрать все активные подразделы раздела $iblockSectionId и для каждого, выбрать его название, картинку и посчитать сколько в нём товаров.
Подсчитывать товары нужно только те у которых свойство "MY_PROPERTY" !== null.
Как это сделать одним запросом к БД?
Пытаюсь сделать так:
но естественно "ELEMENT_PROPERTY" ничего не видит так как свойства в отдельной таблице.
Есть ИБ 2.0 (свойства в таблице "b_iblock_element_prop_s1") $iblockId и раздел $iblockSectionId.
У элементов ИБ есть свойство "MY_PROPERTY" (тип список, всего одно значение "Y").
Нужно выбрать все активные подразделы раздела $iblockSectionId и для каждого, выбрать его название, картинку и посчитать сколько в нём товаров.
Подсчитывать товары нужно только те у которых свойство "MY_PROPERTY" !== null.
Как это сделать одним запросом к БД?
Пытаюсь сделать так:
Код |
---|
$ssections = SectionTable::getList([ 'order' => [ 'sort' => 'asc', ], 'filter' => [ 'ACTIVE' => 'Y', 'IBLOCK_ID' => $iblockId, 'IBLOCK_SECTION_ID' => $iblockSectionId, 'PROPERTY_CODE' => ['MY_PROPERTY'], '!IBLOCK_SECTION_ELEMENT_PROPERTY_VALUE' => null, ], 'select' => [ 'ID', 'NAME', 'PICTURE', 'IBLOCK_ELEMENT_ID' => 'ELEMENT.ID', 'PROPERTY_ID' => 'PROPERTY.ID', 'PROPERTY_CODE' => 'PROPERTY.CODE', 'ELEMENT_PROPERTY', ], 'runtime' => [ (new Reference( 'ELEMENT', ElementTable::class, [ 'this.IBLOCK_ID' => 'ref.IBLOCK_ID', 'this.ID' => 'ref.IBLOCK_SECTION_ID' ] )), (new Reference( 'PROPERTY', PropertyTable::class, [ 'this.IBLOCK_ID' => 'ref.IBLOCK_ID', ] )), (new Reference( 'ELEMENT_PROPERTY', ElementPropertyTable::class, [ 'this.IBLOCK_ELEMENT_ID' => 'ref.IBLOCK_ELEMENT_ID', 'this.PROPERTY_ID' => 'ref.IBLOCK_PROPERTY_ID', ] )), ], ]); var_dump($ssections->fetchAll()); |
CodeBerry - разработка и SEO продвижение сайтов