子查询进入哪个学说2?

时间:2016-02-09 04:07:25

标签: mysql doctrine-orm zend-framework2 subquery

尝试在where中实现子查询时遇到了一些问题。其实我不知道它是谁。我可以提前帮助的Agradesco。

这是我的QueryBuilder

$em = $this->getEntityManager();
$qb = $em->createQueryBuilder();
$qb2 = $em->createQueryBuilder();

$qb->select('pp')
        ->add('from', 'ORM\Entity\PedidoProducto pp')
        ->innerJoin('pp.idPedido', 'pd')
        ->innerJoin('pp.idProducto', 'p')
        ->join('ORM\Entity\ProductoCompra', 'pc', 'WITH', 'pc.idProducto = p.id')
        ->where($qb->expr()->eq('pc.idCompra', $qb2->select('MAX(pc1.idCompra)')
                ->add('from', 'ORM\Entity\ProductoCompra pc1')
                ->where('pc1.idProducto = pc.idProducto')
                ->groupBy('pc1.idProducto')->getDQL()))
    ->groupBy('pc.idProducto');

这是查询:

SELECT * 
FROM pedido_producto pp 
INNER JOIN pedido pd ON pp.id_pedido = pd.id
INNER JOIN producto p ON pp.id_producto = p.id
INNER JOIN producto_compra pc ON pc.id_producto = p.id
WHERE pc.id_compra = (
SELECT max(pc1.id_compra) 
FROM producto_compra pc1 
WHERE pc.id_producto = pc1.id_producto
GROUP BY pc1.id_producto) GROUP BY pc.id_producto

这是错误:

Doctrine\ORM\Query\QueryException

File:

    C:\xampp\htdocs\ventasV1\vendor\doctrine\orm\lib\Doctrine\ORM\Query\QueryException.php:52

Message:

    [Syntax Error] line 0, col 183: Error: Expected Literal, got 'SELECT'

我希望我可以帮你解决它。 谢谢。

0 个答案:

没有答案