Как сделать на yii2 distinct несколько полей не теряя при этом остальных?

На Yii2 можно использовать метод select() для выборки нескольких полей и метод distinct() для исключения дубликатов значений, не теряя при этом остальных полей.

Приведен пример кода, который выполняет выборку с использованием distinct() для полей field1 и field2, при этом остальные поля сохраняются в результате:

$query = (new yiidbQuery())
    ->select(['field1', 'field2'])
    ->distinct(true)
    ->from('your_table')
    ->all();

В этом примере мы создаем экземпляр класса Query, затем с помощью метода select() указываем поля field1 и field2. Далее вызываем метод distinct(true), где аргумент true указывает, что мы хотим выполнить выборку с использованием distinct. Затем указываем имя таблицы с помощью метода from().

Вы можете использовать другие методы where(), orderBy(), limit() и другие для дальнейшей настройки вашего запроса.

Когда вызывается метод all(), он выполняет запрос к базе данных и возвращает результат в виде массива. Результат будет содержать только уникальные комбинации значений для полей field1 и field2, но при этом будут сохранены все остальные поля.