Задача:
Есть два инфоблока, один из которых имеет свойство множественной привязки к элементам другого. Нужно фильтрануть элементы данного инфоблока по признаку привязки ОДНОВРЕМЕННО к нескольким элементам (логика И)
Решение:
Единственным рабочим решением является применение таинственных "подзапросов":
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) - бесполезно, не сработает.