sql >> Databasteknik >  >> RDS >> Mysql

Hur använder man JOIN i Yii2 Active Record för relationsmodell?

Använd joinWith . För mer se

Till exempel, för din ärendekod så här:

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

EDIT:Jag hittar en bättre lösning.

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



  1. Hur man hanterar MariaDB 10.3 med ClusterControl

  2. Mysql-tjänsten startar inte, InnoDB init-funktionsfel

  3. PDO - Fatalt fel:Anrop till en medlemsfunktion fetch() på ett icke-objekt

  4. Hur kommer jag åt Oracle från Python?