我有一个包含三个表的Doctrine2项目: Product、Category和Rating。每个产品都有一个且只有一个类别。一个类别可能有一个父级和许多子级。每个产品都有很多评价。
我运行以下查询:
SELECT DISTINCT p, AVG(r.value)*COUNT(r) as globalrating
FROM AcmeProductBundle:Product p
JOIN p.ratings r JOIN p.category cat JOIN cat.parent par
WHERE par = '.$categoryID.' OR cat = '.$categoryID.'
ORDER BY globalrating DESC, p.name ASC
其中 $categoryID 是我正在搜索产品的类别的 ID。关键是,尽管该类别中没有产品,但仍会报告一个结果。特别是,该对象的类型是 Acme\ProductBundle\Product 并且在字段中没有值,并且id 是 0!“globalrating”值也是空的!我不明白为什么?
任何的想法?
提前致谢。