ajky
@ajky
Full-stack developer

Как сделать SQL выборку из двух связанных таблиц в Yii2?

Собственно есть 2 таблицы:
  • car_brand - таблица с марками автомобилей (поля: id, title)
  • car - таблица с машинами (поля: id, brand_id, title)

Нужно вывести название марок и их id, в которых есть хотя бы одна машина.
Сейчас запрос выглядит так:
$car_brand = Car::find()
        ->select('title, id, brand_id')
        ->with('car_brand')
        ->groupBy('brand_id')
        ->all();

Но в дебагере виден один из запросов:
SELECT * FROM `car_brand` WHERE `id` IN ( все айдишников моделей )

Вместо желаемого:
SELECT a.title as title, brand_id 
FROM car_brand as a, car as b 
WHERE b.brand_id = a.id 
GROUP BY b.brand_id

Как правильнее всего вывести подобный запрос/результат ?
  • Вопрос задан
  • 799 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
При таком запросе:
$car_brand = Car::find()
        ->select('title, id, brand_id')
        ->with('car_brand')
        ->groupBy('brand_id')
        ->all();

$car_brand это Car
$car_brand->car_brand - это данные из связи car_brand

Вот тут доки: www.yiiframework.com/doc-2.0/guide-db-active-recor...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы