Symfony DQL 加入 + 分组时出错:预期的乱码,得到 'BY'

Symfony DQL Error on join + group by : Expected litteral, got 'BY'

我有两个实体,ProductKeyword 具有多对多关系。 我想获取所有关键字以及每个关键字与产品相关联的出现次数。

我正在使用 DQL。我首先尝试在我的查询中使用 jointable,但我发现这不是一个好方法。我按照这个post,这与我想要实现的非常相似,但是我得到了一个错误。

这是我的查询:

SELECT k.id, k.value, count(p.id)
FROM App\AppBundle\Entity\Keyword k
JOIN App\AppBundle\Entity\Product p
GROUP BY p.id

这是我得到的错误:

Error : Expected Literal, got 'BY'.

我看不出问题所在。
欢迎任何建议。谢谢。

当您加入时,您使用的是 属性 名称,因此它可能类似于

SELECT k.id, k.value, count(p.id)
FROM App\AppBundle\Entity\Keyword k
JOIN k.products p
GROUP BY p.id

你试过了吗:

SELECT k.id, k.value, count(p.id)
FROM App\AppBundle\Entity\Keyword k
JOIN App\AppBundle\Entity\Product p
GROUP BY k.id