Php 具有TOP 1的子查询原则
条令报告中的子查询错误“子查询返回的值超过1”。。。 但是我使用setMaxResults(1);当我打印Php 具有TOP 1的子查询原则,php,symfony,doctrine-orm,zend-framework2,doctrine,Php,Symfony,Doctrine Orm,Zend Framework2,Doctrine,条令报告中的子查询错误“子查询返回的值超过1”。。。 但是我使用setMaxResults(1);当我打印$qb->getDQL()时,此查询不会返回TOP 1 $qb = $this->getEm('orm_test') ->getRepository('Test\Entity\Test') ->createQueryBuilder('a'); $qb->select('a.test1') ->where('a.id = b.id')
$qb->getDQL()
时,此查询不会返回TOP 1
$qb = $this->getEm('orm_test')
->getRepository('Test\Entity\Test')
->createQueryBuilder('a');
$qb->select('a.test1')
->where('a.id = b.id')
->andWhere('a.date <= :date')
->setMaxResults(1);
$qb->setParameters(array(
'date' => '2014-07-01'
));
$qb=$this->getEm('orm_test'))
->getRepository('Test\Entity\Test')
->createQueryBuilder(“a”);
$qb->select('a.test1')
->其中('a.id=b.id')
->andWhere('a.date=('.$qb->getDql()。'))
$qb2->设置参数(数组)(
“日期”=>“2014-07-01”
));
这是一个仅用于绘制我的问题的示例,事实是我的$qb->getDql()
作为子查询放置时不返回值我删除了->setMaxResults(1)并更改为->选择(max('a.test1'))…我解决了问题。我删除了->setMaxResults(1)并更改为->选择(max('a.test1'))…我解决了问题。
$qb2 = $this->getEm('orm_test')
->getRepository('Test\Entity\Test2')
->createQueryBuilder('b');
$qb2->select('b.test1')
->where('a.date <= :date')
->andWhere('a.date >= (' . $qb->getDql() . ')')
$qb2->setParameters(array(
'date' => '2014-07-01'
));