Yii2 使用 union 和 limit 构造一个查询

Yii2 construct a query with union and limit

我需要构造一个 SQL 查询,其中包含由 UNION 组合的两个查询,并限制返回的行数。

    $query = $queryOne
        ->union($queryTwo)
        ->limit($this->limit)
    ;

问题是 LIMIT 子句包含在第一个查询的括号中。因此,第二个查询没有 LIMIT 子句。

我需要为整个查询而不是子查询指定 LIMIT 子句。

您将需要第三个查询来稍微优雅地解决问题:

    $query = (new Query)
        ->select('*')
        ->from([
            $queryOne->union($queryTwo),
        ])
        ->offset($offset)
        ->limit($limit)
    ;

Related.