在查询中数一对多的学说



我有一个实体Shop和Shop有很多InstagramShopPicture,关系如下:

 /**
     * @Exclude()
     * @ORMOneToMany(targetEntity="InstagramShopPicture", mappedBy="shop", cascade={"persist"})
     * @ORMOrderBy({"created" = "DESC"})
     */
    protected $userPictures;

我有以下查询,我需要找到有 4 张或更多图片的商店:

  $query = $em->createQueryBuilder()->select('s')
                  ->from("AppMainBundle:InstagramShop", 's')
                  ->innerJoin('s.userPictures', 'p')
                  ;
      $query->andHaving('COUNT(s.userPictures) >= 4');

为什么这不起作用?正确的方法是什么?

Doctrine 使用 SQL,因此您需要像在 SQL 上一样使用 GROUP BYHAVING 进行操作。

此外,您需要为COUNT指定一个字段,例如 p.id ,而不是别名。

链接解释HAVING : http://www.techonthenet.com/sql/having.php

相关内容

  • 没有找到相关文章

最新更新