计算许多关系项目Doctrine,Symfony2

时间:2014-09-26 19:33:39

标签: php symfony doctrine-orm

有人可以帮我解决这个问题。 我有两张表连接如下:

class Splittest {
     /**
 * @ORM\ManyToMany(targetEntity="Landing")
 * @ORM\JoinTable(name="splittest_landings",
 *      joinColumns={@ORM\JoinColumn(name="splittest_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="landing_id", referencedColumnName="id")}
 *      )
 **/
protected $landings;
}

现在我想选择所有具有多个着陆的拆分测试。我怎样才能在DQL中执行此操作?

1 个答案:

答案 0 :(得分:1)

您需要使用having选择所有具有超过1次着陆的splittest

SELECT s 
FROM MyBundle\Entity\Splittest
JOIN s.landings l
HAVING COUNT(l) > 1

使用查询构建器

$qb->select("s")
    ->from('MyBundle\Entity\Splittest', 's')
    ->innerJoin('s.landings', 'l')
    ->having('count(l) > 1');