UNION
で結合された2つのクエリを含むSQLクエリを作成し、返される行数を制限する必要があります。Yii2はユニオンとリミットを使用してクエリを作成します
$query = $queryOne
->union($queryTwo)
->limit($this->limit)
;
問題はLIMIT
句が最初のクエリと括弧で囲まれていることです。この結果、2番目のクエリにはLIMIT
句がありません。
サブクエリ以外のクエリ全体に対してLIMIT
句を指定する必要があります。
私はあなたが2つのソリューションを持っていると思います。 1)sqlが単純な場合は、sqlを直接記述します。 2)SQLが複雑な場合は、SQLからビューを作成し、Yiiから呼び出します。 –
@FabrizioCaldarelliさんがお手伝いをしてくれてありがとうございます。すでに生のSQLをハッキングせずに解決策を見つけました。 – Kolyunya