doctrine-orm – Doctrine 2:写一个合适的Subselect
发布时间:2020-12-15 02:25:46 所属栏目:Java 来源:网络整理
导读:我试图在我申请START之前获得$qb将返回的总记录数.查询$qb的LIMIT属性.我的$qb和$totalQb自己运行得很好,但是当我尝试使用$qb作为子选择时,我得到一个错误抛出: $qb = $this-entityManager-createQueryBuilder() -select('w,se') -from('DashboardEntityS
我试图在我申请START&之前获得$qb将返回的总记录数.查询$qb的LIMIT属性.我的$qb和$totalQb自己运行得很好,但是当我尝试使用$qb作为子选择时,我得到一个错误抛出:
$qb = $this->entityManager->createQueryBuilder() ->select('w,se') ->from('DashboardEntitySection','se') ->innerJoin('se.word','w') ->innerJoin('se.location','l'); $qb->add('where',$qb->expr()->andx( $qb->expr()->eq('l.ignored',$ignored),$qb->expr()->eq('l.id',$params['l_id']) ),true); 这条线以上的一切都很好 $totalQb = $this->entityManager->createQueryBuilder() ->select('COUNT(x.id)') ->from('DashboardEntitySection','x'); 上面的$totalQb本身运行良好.但是当我这样做的时候 $dql = $qb->getDql(); $totalQb->add('where',$totalQb->expr()->exists( $dql )); $totalSql = $totalQb->getQuery(); $sql = $totalSql->getSql(); $total = $totalSql->getSingleScalarResult(); 这是错误的 它指的是SubSelect’exists’语句.但是当我自己运行$dql时 [Syntax Error] line 0,col 69: Error: Expected DoctrineORMQueryLexer::T_FROM,got ',' 在我的场景中进行子选择的正确方法是什么? UPDATE SELECT COUNT(x.id) FROM DashboardEntitySection x WHERE EXISTS( SELECT w,se FROM DashboardEntitySection se INNER JOIN se.word w INNER JOIN se.location l AND (l.ignored = 0) AND (l.id = 2) GROUP BY w.id,l.id ) 解决方法
我能够通过更改内部 – >选择仅从一个表拉取来修复上述查询.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |