2016-07-20 6 views
0

私はYii2サブクエリのGROUP BYは

Yii2アクティブレコードクエリに "blog_id LIMIT 2 BY blog_post GROUP(データDESC BY blog_post ORDER SELECT * FROM)SELECT * FROM" このクエリ を変換することができますか?

Thxを 女史

答えて

3

はい、あなたはこれを行うことができます。 Yii2は私たちに素晴らしい図書館サポートを与えました。

あなたはカスタムSQLクエリを形成し、同様にfindBySql()でこのクエリを渡すことができます。

$sql = "Some query/nested query"; 
$result = ModelClass::findBySql($sql); 

訪問のYii公式documentation

+0

[OK]を、それworks.Thx! – mariasol

0

ブログ投稿::)(見つける - > ORDERBY( 'データDESC') - > GROUPBY( 'blog_id') - >リミット(2) - >すべての();

0

私はあなたがこのような方法で行うことができたとします

Ⅰ:あなたがから選択するサブクエリを作成します。

$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は便利願っています)

+0

私はこのようにしていますが、return $ modelsはアクティブなレコードではなく配列です。 – mariasol