I have an entity Book and it has too many relations with other entities. now I want to sort a COUNT column of one of many to many relation properties and I use this approach
- Doctrine2 order by count many to many
- Doctrine2, get entities ordered by a count of a many to many properties
but it gave me a wrong response:
- It shows me only one row from any of my join entity because it group by a book id
- Count number is wrong because it count all join rows so number is very large usually
this happen because I have too many left join in my query builder like this:
$this->createQueryBuilder('b')
->addSelect('bookTranslations')
->addSelect('bookGenres')
->addSelect('bookCrews')
->addSelect('feels')
->addSelect('genre')
->addSelect('user')
->leftJoin('b.translations', 'bookTranslations')
->leftJoin('b.bookGenres', 'bookGenres')
->leftJoin('b.bookCrews', 'bookCrews')
->leftJoin('bookCrews.user', 'user')
->leftJoin('bookGenres.genre', 'genre')
->leftJoin('b.feels', 'feels')
->addSelect('COUNT(bookGenres) AS HIDDEN genreCount')
->groupBy('b.id')
;
I use symfony serializer for responce data
any ideas?