Symfony - Doctrine Query оставил внешнее соединение
Последние несколько дней я безуспешно пытаюсь собрать два DQL-запроса, используя левое внешнее соединение. Что я ищу, так это всю информацию о книге, используя $offset и $limit, и по рецензии получите средний рейтинг книги и последний день, когда пользователь вставил рецензию на эту книгу, используя левое внешнее объединение. Спасибо за помощь.
DQL в моем BookRepository:
public function getLatest($limit, $offset) {
$queryBuilder = $this->createQueryBuilder('entry');
$queryBuilder->orderBy(
'entry.dateTimeStamp',
'DESC'
)
->setFirstResult($offset)
->setMaxResults($limit);
$query = $queryBuilder->getQuery();
return $query->getResult();
}
DQL в моем обзоре репозитория:
public function getDayRating($limit, $offset) {
$queryBuilder = $this->createQueryBuilder('best_entry');
$queryBuilder
->select(
'MAX(best_entry.dateAdded) as last_day_entry'
,
'AVG(best_entry.rating) as avg_rating'
,
'IDENTITY(best_entry.book) as bookID'
)
->groupBy('best_entry.book')
->setFirstResult($offset)
->setMaxResults($limit);
$query = $queryBuilder->getQuery();
return $query->getResult();
}
Book.php
/**
* @var \Doctrine\Common\Collections\ArrayCollection
* @ORM\OneToMany(targetEntity="Literary\BookBundle\Entity\Review", mappedBy="book")
*/
protected $reviews;
Review.php
/**
* @var \Literary\BookBundle\Entity\Book
* @ORM\ManyToOne(targetEntity="Literary\BookBundle\Entity\Book", inversedBy="reviews")
* @ORM\JoinColumn(name="book", referencedColumnName="id")
*/
private $book;
SQL-запрос для этого
SELECT
Book.id as bookid, Book.author, Book.genre,Book.title, Book.released_date
, Book.isbn, Book,synopsis,Book,addedBy, Book.date_time_stamp,
ROUND (AVG(Rating.rating),1) as avg_rating,
MAX(Rating.date_added) AS lastaddeddate
FROM assessment_book AS Book
LEFT JOIN assessment_review as Rating on Book.id = Rating.book
group by Book.id
ORDER BY Book.id
LIMIT 6 OFFSET 0;
Я не могу понять, как создавать запросы DQL из моего запроса SQL.