而不是实际的问题,这对我自己来说是一个棘手的音符,可能会对他人有所帮助。还有许多其他类似的问题:1、2、3、4、5、6,但它们似乎都没有提供此解决方案。
我有以下实体:
class Order
{
// ...
/**
* @ManyToOne(targetEntity="Customer")
*/
private Customer $customer;
/**
* @Column(type="integer")
*/
private int $amount;
}
class Customer
{
// ...
}
Order
与Customer
有多一一对一的关系。我想获得每个客户以及他的总订单数量,因此我运行以下DQL查询:
SELECT c, SUM(o.amount)
FROM ModelOrder o
JOIN o.customer c
GROUP BY c
但是我会收到以下错误:
[学说 orm query queryException]
[语义错误]第0行,col -1附近'选择C,sum(o.amount)':错误:无法通过识别变量选择实体而不选择一个根实体别名。
我该如何修复?
这是已知的学说限制。
解决方案是使用WITH
条件:
Customer
)明确加入其他实体(Order
),使用CC_6条件:
SELECT c, SUM(o.amount)
FROM ModelCustomer c
JOIN ModelOrder o WITH o.customer = c
GROUP BY c