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.

0 ответов

Другие вопросы по тегам