Yii2 用 union 和 limit 构造一个查询

Kol*_*nya 2 php sql query-builder yii2

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

    $query = $queryOne
        ->union($queryTwo)
        ->limit($this->limit)
    ;
Run Code Online (Sandbox Code Playgroud)

问题在于该LIMIT子句与第一个查询一起括在括号中。因此,第二个查询没有LIMIT子句。

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

Kol*_*nya 5

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

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

有关的