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();