尝试在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'
我希望我可以帮你解决它。 谢谢。