Задать вопрос
kotepdag
@kotepdag
Кот который педагог

Как создать связь с подзапросом?

Привет всем.
Есть Модель с связью, но для связи мне нужно использовать вложенный запрос
что-то типа:
SELECT * FROM `category` INNER JOIN <b>(SELECT * FROM `category_value` WHERE ... UNION ...)</b> WHERE category.id = 2

но чтобы загрузилось в связь categoryValue

Делаю так:
Category::find()
            ->innerJoin(['categoryValue' => CategoryValueQuery::get($id, $language_id)], 'categoryValue.category_id = category.id')
            ->andWhere(['category.id' => $id])
            ->one();

связь categoryValue - пуста.

Делаю так:
Category::find()
->joinWith(['categoryValue' => function($query) use ($id, $language_id) {
    return CategoryValueQuery::get($id, $language_id)->all();
// $query = ^ тоже самое
 }])
->andWhere(['category.id' => $id])
->one();

Так вообще вложенный запрос не участвует ни в чем.

Вот связь categoryValue в модели Category

public function getCategoryValue()
    {
        return $this->hasOne(CategoryValue::className(), ['category_id' => 'id']);
    }


Подскажите пожалуйста, как сделать связь с помощью вложенного запроса?
  • Вопрос задан
  • 46 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

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