Как перевести запрос в формат SQL?

Доброго времени суток! Я только начинаю с Yii2, не судите строго. Пытаюсь разобраться с Active Record. Подскажите, как этот запрос выполнить напрямую sql-кодом. А не через Active Record. Заранее спасибо!

$geoNames = GeoNameTable::find()
    ->select([
        'geoname.*',
        'geoname2.geonameid as regionGeonameid',
        'geoname2.name as regionName',
        'geoname2.latitude as regionLatitude',
        'geoname2.longitude as regionLongitude',
        'geoname2.fclass as regionFclass',
        'geoname2.fcode as regionFcode',
        'geoname2.country as regionCountry',
        'geoname2.admin1 as regionAdmin1',
        'geoname2.admin2 as regionAdmin2',
        'geoname2.admin3 as regionAdmin3',
        'geoname2.admin4 as regionAdmin4',
        'geoname2.population as regionPopulation',
        'geoname2.elevation as regionElevation',
        'geoname2.gtopo30 as regionGtopo30',
        'geoname2.timezone as regionTimezone'
    ])
    ->with('alternateNames')
    ->with('countryInfo')
    ->join('LEFT JOIN', GeoNameTable::tableName() . ' as geoname2', 'geoname2.admin1 = geoname.admin1')
    ->where([
        'geoname.fclass' => 'P',
        'geoname2.fcode' => 'ADM1'
    ]);
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
Можно при помощи этого.

Посмотреть, какой запрос генерирует ActiveRecord можно так
$query = Orders::find()->joinWith('items');

print_r($query->createCommand()->getRawSql());

В результате получите что-то похожее
SELECT `orders`.* FROM `orders` LEFT JOIN `order_items` ON `orders`.`id` = `order_items`.`order_id`
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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