Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвам JOIN в Yii2 Active Record за релационен модел?

Използвайте 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Недостатъци на съхраняването на изображения в база данни?

  2. Чат на живо с PHP и jQuery. Къде да съхраняваме информация? Mysql или файл?

  3. MYSQL, ако заявка за избор връща 0 реда, тогава друга заявка за избор?

  4. Защо MySQL позволява групиране по заявки БЕЗ агрегатни функции?

  5. BIT(1) или TINYINT за флагове в MySQL