= [
'select' => ['*', 'GROUPS_ID'],
'runtime' => [
new Entity\ExpressionField('GROUPS_ID', '(SELECT GROUP_CONCAT(b_user_group.GROUP_ID) FROM b_user_group WHERE b_user_group.USER_ID = main_user.ID)')
]
];
$obj = \Bitrix\Main\UserTable::getList($arQueryParams);
$result = [];
while ($r = $obj->fetch()) {
$result[] = $r;
}
1.9с, это с аякс запросом на bitrix/admin/php_command_line.php
А вариант Алексея сколько у вас отрабатывает?
сложно картинки в редактор кода вставлять_)
use Bitrix\Main\Entity\Query; use Bitrix\Main\UserTable; $res = (new Query(UserTable::getEntity())) ->setSelect(['*', 'GROUPS.GROUP_ID']) ->exec(); $users = []; while($arr = $res->fetchObject()) { $users[$arr['ID']] = $arr; } unset($currentUser);
внезапно, не влазит в таймлимит
...а для самых внимательных в коде есть крохотный бриллиантик
сам запрос в mysql 0.274, а вот последующая выборка долго
fetchObject() тормозит люто
Обсуждают сегодня