Php 对于symfony2和条令为空
我正在尝试这段代码,但我一直遇到错误Php 对于symfony2和条令为空,php,symfony,doctrine-orm,query-builder,Php,Symfony,Doctrine Orm,Query Builder,我正在尝试这段代码,但我一直遇到错误 $q = $this->_em->createQueryBuilder('p') ->select('p') ->from('ClendarRecipeBundle:RecipePlan', 'p') ->leftJoin('p.recipeCalendars', 'c') ->groupBy('c.recipePlan') ->having('p.portions >
$q = $this->_em->createQueryBuilder('p')
->select('p')
->from('ClendarRecipeBundle:RecipePlan', 'p')
->leftJoin('p.recipeCalendars', 'c')
->groupBy('c.recipePlan')
->having('p.portions > SUM(c.portions)')
->orHaving('SUM(c.portions) IS NULL')
->getQuery();
当SUM(c.partions)为NULL时,第一个have没有选择它,因此我尝试添加或having,但symfony2给出以下错误:
[Syntax Error] line 0, col 204: Error: Expected =, <, <=, <>, >, >=, !=, got 'IS'
[语法错误]第0行第204列:错误:预期=,=,!=,有“是”
我尝试了几种不同的写作方式,你们有没有好的建议我可以试试?
我可以尝试RAWS Sql,但我更喜欢QueryBuilder中带有对象的代码。它应该是:
SUM(c.portions) != 0
用
=NULL
替换=NULL
如果我这样做,我会得到以下错误,这是正常的,因为据你所知,你可以像那样比较NULL。(至少不是在sql中)[语法错误]第0行,第206列:错误:应为文本,得到'NULL'我的错误,使其SUM(c.parties)!=0
。这是一个很好的逻辑解决方案,我应该亲眼看看。非常感谢。