Autor | Zpráva | ||
---|---|---|---|
DevsPetr Profil |
#1 · Zasláno: 24. 11. 2017, 11:44:13 · Upravil/a: Moderátor (editace znemožněna) 28. 11. 2017, 08:23:22
Dobry den. Potreboval bych pomoct jak dat dohromady dve DQL queries s pouzitim left join pro review .
Tenhle DQL je z meho 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(); A tenhle z ReviewRepository: 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; Potreboval bych vytvorit v Repository(Book nebo Review) funkci ktera mi ukaze vsechny knihy s pouzitim $limit a $offset a s pouzitim left join mit informace o raiting te knihy jako napriklad prumer z rating a informaci kdy byl naposledy vlozen posledni prispevek. Jako spojeni mezi knihou a rating je id knihy a best_entry.book v rating Predem moc dekuji za pomoc. Moderátor Kajman: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
Časová prodleva: 3 dny
|
|||
DevsPetr Profil |
#2 · Zasláno: 27. 11. 2017, 19:59:41 · Upravil/a: Moderátor (editace znemožněna) 28. 11. 2017, 08:23:36
Jeste pridam ze SQL query pro toto je
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; Stale vsak nevim, jak z toho vytvorit DQL. |
||
Časová prodleva: 6 let
|
0