Выбрать только те записи которые имеют одну связь?

В Yii, чтобы выбрать только те записи, которые имеют одну связь, вы можете использовать метод with в методе find() вашей модели запроса.

Допустим, у вас есть две связанные модели: User и Profile. Связь между ними устанавливается через поле user_id в модели Profile. Теперь вы хотите выбрать только те записи в модели User, которые имеют связь с моделью Profile.

Вот как можно это сделать:

$users = User::find()
    ->with('profile') // указываем связь, которую хотим загрузить
    ->all();

foreach ($users as $user) {
    if ($user->profile !== null) {
        // запись имеет связь с профилем
    } else {
        // запись не имеет связи с профилем
    }
}

В этом примере метод with('profile') указывает Yii загрузить связь profile для каждого объекта User в результате запроса. Затем мы проходимся по каждому объекту User и проверяем, является ли объект Profile пустым или нет. Если объект Profile не равен null, значит у этой записи есть связь с моделью Profile.

Обратите внимание, что метод with поддерживает загрузку связей через разделитель ,. То есть, если у вас есть несколько связей, которые вы хотите загрузить, вы можете указать их таким образом: ->with('profile, posts, comments').

Кроме того, если вам нужно выполнить дополнительные операции с этими записями, вы можете использовать методы и фильтры в запросе, чтобы дополнительно фильтровать результаты.

Надеюсь, это поможет вам выбрать только те записи, которые имеют одну связь при использовании Yii!