yii里union的调用方法如下:
$queryAll = $query1->union($query2, true);
需要注意的是,最后获取联合查询的列表内容,需要再创建一个查询对象,而不能直接用$queryAll->all()。而且union的select字段需要一致。
$query1 = new Query();
$query1->from('table1');
$query1->select(['c1', 'c2', '("ios") as type']);
$query2 = new Query();
$query2->from('table2');
$query2->select(['c1', 'c2', '("android") as type']);
$unionQuery = $query2->union($query1, true);
$count = $unionQuery->count();
// 这里需要创建一个新的query,把$queryAll做子查询
$list = (new Query())
->from(['tmpA' => $queryAll])
->offset($offset)
->limit($limit)
->orderBy('id asc')
->all();