@Malkolm163

Как выбрать по 1 записи с определенным фильтром при помощи ORM Bitrix?

Есть таблица вот класс описания

class BirthdayEventsTable extends Entity\DataManager {
  public static function getTableName() {
    return 'wc_events';
  }
  public static function getMap() {
    return [
      new Entity\IntegerField("ID", [
        'primary' => true,
        'autocomplete' => true
      ]),
      new Entity\DatetimeField("DATE_INSERT"),
      new Entity\DatetimeField("DATE_EXEC"),
      new Entity\IntegerField("EXEC_COUNT"),
      new Entity\BooleanField("SUCCESS_EXEC"),
      new Entity\StringField("EXEC_RESULT"),
      new Entity\StringField("EXEC_ERROR"),
      new Entity\StringField("NAME"),
      new Entity\StringField("PHONE"),
      new Entity\StringField("CLIENT_ID"),
    ];
  }
}


Вот пример таблицы с ее значениями https://yadi.sk/i/KlrZnGQFOK59OQ
Тут пока только 2 записи, но будет больше, естественно.
Мне нужно вытащить из этой таблицы по 1й записи для каждого CLIENT_ID
Как это сделать?
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Можно сделать getList с группировкой по CLIENT_ID. а в runtime добавить поле max(ID)

BirthdayEventsTable::getList(array(
    'select' => array('CLIENT_ID', 'MAX_ID'),
    'group' => array('CLIENT_ID'),
    'runtime' => array(
        new Entity\ExpressionField('MAX_ID', 'max(ID)')
    )
));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы