Yii2アクティブレコードクエリに "blog_id LIMIT 2 BY blog_post GROUP(データDESC BY blog_post ORDER SELECT * FROM)SELECT * FROM" このクエリ を変換することができますか?
Thxを 女史
Yii2アクティブレコードクエリに "blog_id LIMIT 2 BY blog_post GROUP(データDESC BY blog_post ORDER SELECT * FROM)SELECT * FROM" このクエリ を変換することができますか?
Thxを 女史
はい、あなたはこれを行うことができます。 Yii2は私たちに素晴らしい図書館サポートを与えました。
あなたはカスタムSQLクエリを形成し、同様にfindBySql()
でこのクエリを渡すことができます。
$sql = "Some query/nested query";
$result = ModelClass::findBySql($sql);
訪問のYii公式documentation。
ブログ投稿::)(見つける - > ORDERBY( 'データDESC') - > GROUPBY( 'blog_id') - >リミット(2) - >すべての();
私はあなたがこのような方法で行うことができたとします
Ⅰ:あなたがから選択するサブクエリを作成します。
$blogPostQuery = BlogPostModel::find()->orderBy(['data' => SORT_DESC]);
Ⅱ:ActiveRecordの結果を取得します。 paramsが存在します。
$models = (new yii\db\Query)
->from(['blog_post ' => $blogPostQuery])
->groupBy(['blog_id'])
->limit(2)
->all();
PS: YiiのAPIでyii\db\query->from()-detailを参照してください。
(公共$($テーブル)からこの)$テーブルは、文字列のいずれかになります(たとえば、「ユーザー」)または1つまたは複数を指定する配列(例えば[「ユーザー」、「プロフィール」])テーブル名···または
は試してみるサブクエリまたはDB表現!私は:)あなたのためにそれ `sは便利願っています)
私はこのようにしていますが、return $ modelsはアクティブなレコードではなく配列です。 – mariasol
[OK]を、それworks.Thx! – mariasol