sql >> データベース >  >> RDS >> Mysql

リレーショナルモデルのYii2ActiveRecordでJOINを使用するにはどうすればよいですか?

    joinWithを使用する 。詳細については、参照 をご覧ください。

    たとえば、次のようなケースコードの場合:

    Books::find()
        ->joinWith(['reviews' => function ($q) {
            $q->select(['COUNT(*) as cnt']);
        }])
        ->orderBy(['cnt' => 'DESC'])
        ->all();
    

    編集:私はより良い解決策を見つけます。

    Books::find()
        ->joinWith(['reviews'])
        ->select(['*', 'COUNT(reviews.*) as cnt'])
        ->groupBy('RELATION_FIELD(Example: reviews.book_id)')
        ->orderBy(['cnt' => 'DESC'])
        ->all();
    



    1. mysqlWHEREIN配列文字列/ユーザー名

    2. .netコードからストアドプロシージャにテーブル値パラメータを渡す方法

    3. 外部キー制約をバイパスするmysqlを強制的にドロップします

    4. PHPPDOトランザクションの複製