Как сформировать union запрос в activerecord на yii2?

Пользователь

от loyal , в категории: PHP , 2 года назад

Как сформировать union запрос в activerecord на yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jerad.kuphal , 2 года назад

@loyal 

Union запрос в Yii2 можно сформировать с помощью метода createCommand и метода union у объекта команды SQL.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$query1 = (new yiidbQuery())
    ->select(['id', 'name'])
    ->from('table1')
    ->where(['status' => 1]);

$query2 = (new yiidbQuery())
    ->select(['id', 'name'])
    ->from('table2')
    ->where(['status' => 1]);

$unionQuery = $query1->union($query2);

$rows = Yii::$app->db->createCommand($unionQuery)->queryAll();


Обратите внимание, что выбранные столбцы должны быть одинаковыми в обеих запросах, так как они будут объединены в единый результат.

Пользователь

от laney_johnson , год назад

@loyal 

Вы готовы объединить два запроса, которые выбирают данные из разных таблиц в рамках одного запроса?