yii联合查询union的使用方法

2021-01-13 15:47:44

yii里union的调用方法如下:

\(queryAll = \)query1-&gt;union(\(query2, true);</p><p>需要注意的是,最后获取联合查询的列表内容,需要再创建一个查询对象,而不能直接用\)queryAll-&gt;all()。而且union的select字段需要一致。

\(query1 = new Query();
\)query1-&gt;from(‘table1’);
$query1-&gt;select([‘c1’, ‘c2’, ‘(“ios”) as type’]);

\(query2 = new Query(); \)query2-&gt;from(‘table2’); $query2-&gt;select([‘c1’, ‘c2’, ‘(“android”) as type’]);

\(unionQuery = \)query2-&gt;union(\(query1, true); \)count = $unionQuery-&gt;count();

// 这里需要创建一个新的query,把\(queryAll做子查询 \)list = (new Query())

            -&gt;from(['tmpA' =&gt; $queryAll])
            -&gt;offset($offset)
            -&gt;limit($limit)
            -&gt;orderBy('id asc')
            -&gt;all();</pre><p><br></p><p><br></p><p></p>