带有子查询和的Doctor DQL查询

问题描述 投票:0回答:1

以下Doctrine DQL查询返回语法错误:

    return $this->getEntityManager()->createQuery(
        'SELECT i invoice, (
            (SELECT SUM(p1.amount) FROM PaymentTableA p1 WHERE p1.invoice = i.id)
            +
            (SELECT SUM(p2.amount) FROM PaymentTable2 p2 WHERE p2.invoice = i.id)
        ) mySUM            
        FROM Invoice i
        WHERE i.id BETWEEN 1 AND 50'
    )->getResult();

enter image description here

我想要两个子查询的“简单”总和,例如此有效的MySQL语句

select i.*, (
  (select sum(p1.amount) from PaymentTable1 p1 where p1.invoice_id = i.id)
  +  
  (select sum(p2.amount) from PaymentTable2 p2 where p2.invoice_id = i.id)
) mySUM            
from Invoice i
where i.id between 1 and 50;

如何使用DQL执行此操作?

mysql symfony doctrine-orm doctrine
1个回答
0
投票
不幸的是,教义的解析器无法将2个子选择合并到1个计算字段中。
© www.soinside.com 2019 - 2024. All rights reserved.