Mam 2 tabele o nazwie Książki i recenzje. Tabela książek ma relację jeden-do-wielu z recenzjami.Jak używać JOIN w Yii2 Active Record dla modelu relacyjnego?
Chcę wyszukiwać książki i sortować je według recenzji.
Na przykład, jeśli dostępnych jest 10 książek, a książki mają recenzję w recenzjach, chcę znaleźć wszystkie książki za pomocą klauzuli WHERE i liczyć tam recenzje, a następnie zamówić wszystkie książki na podstawie numeru recenzji.
Moje zapytanie SQL jest jak następuje:
Books::find()
->where([
'and',
['like', 'books.bookName', $bookName],
['like', 'books.status', 'Enabled']
])
->joinWith(['reviews' => function ($q){
$q->select(['COUNT(*) as cnt']);
}])
->orderBy(['cnt' => 'DESC'])
->all();
To daje mi następujący komunikat o błędzie:
SQLSTATE [42S22]: Column not found: 1054 Unknown kolumnie 'CNT' w klauzuli porządku "
Czego tu mi brakuje?
Dzięki. Ale tutaj muszę liczyć całkowite recenzje dla każdej książki, a następnie posortować listę książek na podstawie numeru recenzji. –
Cześć, dzięki. Zaktualizowałem pytanie. Czy mógłbyś zajrzeć do zaktualizowanego? Dzięki. –