Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Symfony Doctrine - Zapytanie po 3 artykuły z każdej kategorii
Forum PHP.pl > Forum > Przedszkole
Malinaa
Mam zapytanie
Kod
$queryBuilder->select('c.id AS cid', 'c.name', 'a.id AS aid', 'a.title')
            ->from('ArticlesCategory', 'c')
            ->leftJoin('Articles', 'a', \Doctrine\ORM\Query\Expr\Join::WITH, 'c.id = a.category')
            ->where('a.status = :status')
            ->setParameter('status', 'active')
            //->groupBy('a.id')
            //->setMaxResults(3)
            ->orderBy('c.id', 'ASC')
            ->addOrderBy('a.uploaded_at', 'DESC');

Potrzebne po 3 artykuły z każdej kategorii.
Jak napisać zapytanie?
LowiczakPL
zastosuj subquery
Malinaa
Teraz mam tak, ale nie mogę coś tego "poskładać".

Kod
$exBuilder = $em->getExpressionBuilder();
$queryBuilder = $em->createQueryBuilder();

$queryBuilder->select('c.id AS cid', 'c.name', 'a.id AS aid', 'a.title')
            ->from('App\Entity\RtwArticlesCategory', 'c')
            ->innerJoin('App\Entity\RtwArticles', 'a', \Doctrine\ORM\Query\Expr\Join::WITH, 'c.id = a.category')
            ->where(      
                $em->createQueryBuilder()
                ->select('a2.id', 'a2.title')
                ->from('App\Entity\RtwArticles', 'a2')
                ->leftJoin('App\Entity\RtwArticlesCategory', 'c2', \Doctrine\ORM\Query\Expr\Join::WITH,
                    $exBuilder->andX(
                        $exBuilder->eq('c2.id', 1) // 'a2.category'
                        //$exBuilder->eq('c2.id', '?1')
                    )
                )
                ->getDQL()
            );

//->setMaxResults(3)
//->setParameter(1, 5)


Jak to poskładać w jedno, aby mieć po 3 artykuły dla każdej kategorii?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.