Doctrine orm 原则2如何从联接中求和,但按2列分组
我使用Symfony和Doctrine Querybuilder返回订单列表,其中包含每个订单中所有产品的计数。这意味着订单和OrderProducts之间存在1:n关系OrderProducts表存储OrderID和每个产品的数量。如果我执行groupBy o.orderId,那么我会得到正确的总和,但是我不会得到属于orderId的所有orderProducts的数据,因此如果orderProducts表中有两种不同的产品,那么我会得到数量:2,但只有一种产品的数据,所以我需要按oi.orderProductId分组,但显然,只要我添加第二个groupBy oi.orderProductId,那么TotalCount就会显示每个记录的总和。我完全知道这是正确的行为,但如果有办法实现我正在努力做的事情,我就是想不通。我假设我必须以某种方式使用subselect,但我不确定这是否可能实现。到目前为止,我的两张桌子和两张桌子都安排好了 tbl订单 医嘱ID 日期创建 tblorderProducts 订单产品ID 医嘱ID 数量 我希望有人能给我一个提示,告诉我怎样才能做到这一点。非常感谢。方法总是替换当前的groupBy子句。使用Doctrine orm 原则2如何从联接中求和,但按2列分组,doctrine-orm,doctrine,Doctrine Orm,Doctrine,我使用Symfony和Doctrine Querybuilder返回订单列表,其中包含每个订单中所有产品的计数。这意味着订单和OrderProducts之间存在1:n关系OrderProducts表存储OrderID和每个产品的数量。如果我执行groupBy o.orderId,那么我会得到正确的总和,但是我不会得到属于orderId的所有orderProducts的数据,因此如果orderProducts表中有两种不同的产品,那么我会得到数量:2,但只有一种产品的数据,所以我需要按oi.ord
addGroupBy()
return $this->createQueryBuilder('o')
->select(array(
'o AS orderData',
'oi',
'sum(oi.qty)AS noOfItems'))
->join('o.orderItems', 'oi')
->groupBy('o.orderId')
->groupBy('oi.orderProductId')
->getQuery()
->execute();