学说2:无法通过识别变量选择实体,而无需选择至少一个根实体别名



而不是实际的问题,这对我自己来说是一个棘手的音符,可能会对他人有所帮助。还有许多其他类似的问题:1、2、3、4、5、6,但它们似乎都没有提供此解决方案。


我有以下实体:

class Order
{
    // ...
    /**
     * @ManyToOne(targetEntity="Customer")
     */
    private Customer $customer;
    /**
     * @Column(type="integer")
     */
    private int $amount;
}
class Customer
{
    // ...
}

OrderCustomer有多一一对一的关系。我想获得每个客户以及他的总订单数量,因此我运行以下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

相关内容

  • 没有找到相关文章

最新更新