Napisany przez: Malinaa 5.03.2021, 20:10:58
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?
Napisany przez: Malinaa 6.03.2021, 15:21:30
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?