如何使用Doctrine在Symfony2中实现子查询?

安德烈·弗罗斯特

我需要计算子查询中返回的项目数。如果我编写子查询的DQL效果如何-都很好,但是如果我尝试通过QueryBuilder建立查询-我会收到错误消息。

子查询DQL:

$qb3 = $this->createQueryBuilder('c')
            ->select('COUNT(c.id)')
            ->where('c.id IN (SELECT cl.id FROM Acme\AppBundle\Entity\ClassC cl INNER JOIN Acme\AppBundle\Entity\ClassP p WHERE p.var1 = :var1 AND p.var2 = cl.id GROUP BY cl.id)')
            ->setParameter('var1', $var);

通过QueryBuilder进行子查询:

$qb = $this->createQueryBuilder('c');
$qb->select('COUNT(c.id)')
   ->where(
       $qb->expr()->in(
           'c.id',
           $this->createQueryBuilder('cl')
                ->select('cl.id')
                ->innerJoin('Acme\AppBundle\Entity\ClassP', 'p')
                ->where('p.var1 = :var1')
                ->setParameter('var1', $var)
                ->andWhere('p.var2 = cl.id')
                ->groupBy('cl.id')
                ->getDQL()
     )
 );

两种版本都返回相同的DQL。

错误:画面

PawełMikołajczuk

尝试移至setParameter()主要查询级别。

$qb = $this->createQueryBuilder('c');
$qb->select('COUNT(c.id)')
->where(
   $qb->expr()->in(
       'c.id',
       $this->createQueryBuilder('cl')
            ->select('cl.id')
            ->innerJoin('Acme\AppBundle\Entity\ClassP', 'p')
            ->where('p.var1 = :var1')
            ->andWhere('p.var2 = cl.id')
            ->groupBy('cl.id')
            ->getDQL()
 )
)
->setParameter('var1', $var);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Doctrine在Symfony2中创建复杂的表单

来自分类Dev

Doctrine2 + Symfony2:如何在Symfony2中使用命名空间的Doctrine实体?

来自分类Dev

返回数组,不是Doctrine查询中的对象-Symfony2

来自分类Dev

在Doctrine DQL查询(Symfony2)中使用COLLATE

来自分类Dev

在Doctrine DQL查询(Symfony2)中使用COLLATE

来自分类Dev

在Symfony2中使用解析查询时,Doctrine注释异常

来自分类Dev

使用Doctrine的Symfony2中的DQL查询效率非常低。需要改善

来自分类Dev

Symfony2 / Doctrine联合查询

来自分类Dev

如何不使用Doctrine刷新Symfony2中的持久实体?

来自分类Dev

Symfony2,如何使用下拉列表在Doctrine中执行数据库检索?

来自分类Dev

如何配置Monolog以使用Symfony2和Doctrine将日志存储到MongoDB中

来自分类Dev

如何更改Symfony2中FlashBag消息的实现

来自分类Dev

如何在doctrine2 queryBuilder中实现ON(... OR ...)mysql查询

来自分类Dev

Symfony2子级查询

来自分类Dev

在doctrine2,Symfony2中查询具有条件异常错误

来自分类Dev

Symfony2,Doctrine2查询-使用IF和COUNT选择

来自分类Dev

使用带有Symfony2的Doctrine查询多对多关系

来自分类Dev

在symfony2 / doctrine中使用getResults查询3500条目的速度很慢

来自分类Dev

如何在Symfony2中使用APC案例学说准备查询

来自分类Dev

如何在symfony2中使用动态变量系统地过滤学说查询

来自分类Dev

如何使用symfony2和主义从数据库中手动查询

来自分类Dev

如何在symfony2中使用查询删除记录

来自分类Dev

如何在symfony2中使用动态变量系统地过滤学说查询

来自分类Dev

如何使主义在Symfony2中记录查询

来自分类Dev

返回数组,不是来自Doctrine查询的对象-Symfony2

来自分类Dev

如何在Symfony中实现Doctrine NotifyPropertyChanged

来自分类Dev

如何在Symfony2 Doctrine2中将varchar设置为int类型?

来自分类Dev

如何修改composer.json以在Symfony2中安装Gedmo Doctrine2扩展

来自分类Dev

如何从Symfony2控制台命令使用主/从doctrine2配置

Related 相关文章

  1. 1

    如何使用Doctrine在Symfony2中创建复杂的表单

  2. 2

    Doctrine2 + Symfony2:如何在Symfony2中使用命名空间的Doctrine实体?

  3. 3

    返回数组,不是Doctrine查询中的对象-Symfony2

  4. 4

    在Doctrine DQL查询(Symfony2)中使用COLLATE

  5. 5

    在Doctrine DQL查询(Symfony2)中使用COLLATE

  6. 6

    在Symfony2中使用解析查询时,Doctrine注释异常

  7. 7

    使用Doctrine的Symfony2中的DQL查询效率非常低。需要改善

  8. 8

    Symfony2 / Doctrine联合查询

  9. 9

    如何不使用Doctrine刷新Symfony2中的持久实体?

  10. 10

    Symfony2,如何使用下拉列表在Doctrine中执行数据库检索?

  11. 11

    如何配置Monolog以使用Symfony2和Doctrine将日志存储到MongoDB中

  12. 12

    如何更改Symfony2中FlashBag消息的实现

  13. 13

    如何在doctrine2 queryBuilder中实现ON(... OR ...)mysql查询

  14. 14

    Symfony2子级查询

  15. 15

    在doctrine2,Symfony2中查询具有条件异常错误

  16. 16

    Symfony2,Doctrine2查询-使用IF和COUNT选择

  17. 17

    使用带有Symfony2的Doctrine查询多对多关系

  18. 18

    在symfony2 / doctrine中使用getResults查询3500条目的速度很慢

  19. 19

    如何在Symfony2中使用APC案例学说准备查询

  20. 20

    如何在symfony2中使用动态变量系统地过滤学说查询

  21. 21

    如何使用symfony2和主义从数据库中手动查询

  22. 22

    如何在symfony2中使用查询删除记录

  23. 23

    如何在symfony2中使用动态变量系统地过滤学说查询

  24. 24

    如何使主义在Symfony2中记录查询

  25. 25

    返回数组,不是来自Doctrine查询的对象-Symfony2

  26. 26

    如何在Symfony中实现Doctrine NotifyPropertyChanged

  27. 27

    如何在Symfony2 Doctrine2中将varchar设置为int类型?

  28. 28

    如何修改composer.json以在Symfony2中安装Gedmo Doctrine2扩展

  29. 29

    如何从Symfony2控制台命令使用主/从doctrine2配置

热门标签

归档