Есть элементы инфоблока со свойством "Привязка к элементам". Как с помощью CIBlockElement::GetList вернуть все элементы, у которых количество привязанных элементов равно 1?
Внимательно курить мануал по использованию фильтра в гетлист.
С учетом того, что сами разработчики слабо представляют, как оно устроено, а человек, который писал код, скорее всего, уже уволен, или сам сбежал... С N-ой попытки ткнуть пальцем в небо что-нибудь получится
я конечно предположу что у вас SKU элементов еще больше, но можно было бы выбрать именно все эти элементы и добавлять родительский элемент,добавлять его в массив а потом сделать выборку по этому массиву. групо конечно.
можно применить кэширование и разбить на несколько запросов. Если редко нужен этот запрос, можно и кэшировать(если данные тоже не часто изменяются). В принципе если и часто то можно и обновлять именно этот кэш.
Подсказываю - надо ВНИМАТЕЛЬНО проштудировать все доступные описания методов GetList (в разных классах). Потому что где-то параметры описаны, где-то нет, где-то описаны неправильно, где-то попадутся пользовательские комментарии, сильно облегчающие жизнь...
Dok_11 пишет: Есть элементы инфоблока со свойством "Привязка к элементам". Как с помощью CIBlockElement::GetList вернуть все элементы, у которых количество привязанных элементов равно 1?
Штатно никак. 1. Можно пробовать извратится с группировкой по вашему свойству, используя 3 параметр в ГетЛисте. Но это поможет лишь определить количество. Дальше обход результата в цикле... 2. Прямой запрос к БД, который вытащит вам нужную инфу. Оба варианта "нехороши"
Пример SQL для инфоблока 2.0 (свойства в отдельной таблице)
Код
select
IBLOCK_ELEMENT_ID, count(*) as CNT
from
b_iblock_element_prop_m5
where
IBLOCK_PROPERTY_ID = 17
GROUP BY IBLOCK_ELEMENT_ID, IBLOCK_PROPERTY_ID
HAVING CNT = 1
ORDER BY CNT DESC
где b_iblock_element_prop_m5 - таблица, в которой хранятся значения свойств инфоблока