DQL:连接表并在至少一个连接列满足条件时返回所有结果

时间:2016-02-26 12:18:21

标签: sql symfony doctrine dql doctrine-query

我在Doctrine中有两个实体:Post和Comments之间的oneToMany。评论归用户所有。我想检索特定用户拥有至少一条评论的所有帖子和评论。使用Doctrine的查询生成器实现这一目标的正确方法是什么?

$em->createQueryBuilder('p')
  ->innerJoin('p.comments','c')
  ->having(AT LEAST ON c.user = :user)
  ->where(p.id = :idPost)
你能帮助我吗?

1 个答案:

答案 0 :(得分:1)

这是一个解决方案:

$query = $em->createQueryBuilder('p')
  ->leftJoin('p.comments','c')
  ->where('c.user = :user')
  ->andwhere('p.id = :idPost')
  ->setParameter('idPost', '1')
  ->setParameter('user', 'Toto')
;

return $query->getQuery()->getResult();