【发布时间】:2013-01-02 05:21:16
【问题描述】:
我有一个带有调用自定义查询方法的存储库类。当我尝试从控制器内部调用 findAllWithRating() 时,出现以下异常:
[2/2] QueryException: [Syntax Error] line 0, col 156: Error: Unexpected 'NULL'
如果我尝试在 phpmyadmin 中调用查询,则查询效果很好!
有什么想法吗?
<?php
namespace Anchorbrands\Bundle\MessageBundle\Entity;
use Doctrine\ORM\EntityRepository;
class MessageRepository extends EntityRepository
{
public function findAllWithRating() {
return $this->getEntityManager()
->createQuery("SELECT id, user_id, title, slug, content, question, image_name, created_at, updated_at,
MAX(CASE WHEN rating = '1' THEN totalCount ELSE NULL END) 'Rating 1',
MAX(CASE WHEN rating = '2' THEN totalCount ELSE NULL END) 'Rating 2',
MAX(CASE WHEN rating = '3' THEN totalCount ELSE NULL END) 'Rating 3'
FROM
(
SELECT a.id, a.user_id, a.title, a.slug , a.content, a.question, a.image_name, a.created_at, a.updated_at,
rating, COUNT(*) totalCount
FROM AnchorbrandsMessageBundle:Message a
LEFT JOIN AnchorbrandsMessageBundle:Rating b
ON a.id = message_id
GROUP BY a.id, a.user_id, a.title, a.slug, a.content, a.question, a.image_name, a.created_at, a.updated_at, rating
) r
GROUP BY id, user_id, title, slug, content, question, image_name, created_at, updated_at")->getResult();
}
}
【问题讨论】:
标签: sql symfony doctrine doctrine-orm dql