Задача:
Есть два инфоблока, один из которых имеет свойство множественной привязки к элементам другого. Нужно фильтрануть элементы данного инфоблока по признаку привязки ОДНОВРЕМЕННО к нескольким элементам (логика И)
Решение:
Единственным рабочим решением является применение таинственных "подзапросов":
1,2,3 - ID связанных элементов, по привязке к которым ищем, соответственно.
Если бы у нас была логика "ИЛИ" - можно было бы просто указать массив айдишников привязанных элементов к PROPERTY_LINK_TO_IBLOCK_2.
Использовать сложную логику запроса (с указанием AND) - бесполезно, не сработает.
Есть два инфоблока, один из которых имеет свойство множественной привязки к элементам другого. Нужно фильтрануть элементы данного инфоблока по признаку привязки ОДНОВРЕМЕННО к нескольким элементам (логика И)
Решение:
Единственным рабочим решением является применение таинственных "подзапросов":
$arFilter = array( 'IBLOCK_ID' => 1 array("ID" => CIBlockElement::SubQuery("ID", array("IBLOCK_ID" => 1, "PROPERTY_LINK_TO_IBLOCK_2" => 1))), array("ID" => CIBlockElement::SubQuery("ID", array("IBLOCK_ID" => 1, "PROPERTY_LINK_TO_IBLOCK_2" => 2))), array("ID" => CIBlockElement::SubQuery("ID", array("IBLOCK_ID" => 1, "PROPERTY_LINK_TO_IBLOCK_2" => 3))), ); |
Если бы у нас была логика "ИЛИ" - можно было бы просто указать массив айдишников привязанных элементов к PROPERTY_LINK_TO_IBLOCK_2.
Использовать сложную логику запроса (с указанием AND) - бесполезно, не сработает.