mysql - Symfony2 查询语法错误

标签 mysql doctrine-orm doctrine-query

您好,我有以下联接查询。

return $this->getEntityManager()
        ->createQuery(
            "SELECT t1.taskId,t1.title,t1.dueDate,t1.modified,cb.forename,cb.surname,up.profilePhotoPath,
            (SELECT tp.metaData,tp.content FROM AppBundle:J1TaskPost tp order by tp.created DESC ) AS taskPost
            FROM AppBundle:J1Task as t1
            JOIN t1.assignees As ta
            JOIN t1.createdBy As cb
            JOIN AppBundle:J1UserProfile as up WITH t1.createdBy = up.user
            WHERE t1.deleted IS NULL and t1.status = false and ta.userid=$userId group by t1.taskId order by tp.created desc"
        )->getResult();

它抛出以下错误:

Syntax Error] line 0, col 130: Error: Expected Doctrine\ORM\Query\Lexer::T_FROM, got ','.

我无法找出上述查询中缺少的内容。

最佳答案

问题出在这一行:

"SELECT t1.taskId,t1.title,t1.dueDate,t1.modified,cb.forename,cb.surname,up.profilePhotoPath,
(SELECT tp.metaData,tp.content FROM AppBundle:J1TaskPost tp order by tp.created DESC ) AS taskPost

您需要选择taskPost 中的项目,但您在这里所做的是定义表。你可以做的是:

SELECT t1.taskId,t1.title,t1.dueDate,t1.modified,cb.forename,cb.surname,up.profilePhotoPath, taskPost.metaData, taskPost.content FROM
(SELECT tp.metaData,tp.content FROM AppBundle:J1TaskPost tp order by tp.created DESC ) AS taskPost,
...

关于mysql - Symfony2 查询语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36034147/

相关文章:

php - 使用 Doctrine 获取多行、单列数组

javascript - 实现 Ajax/Jquery

mysql : Get latest value and sum of values from previous hour

mysql - 纯 SQL 和 DQL 以及 Doctrine 2 ORM 性能更好?

doctrine-orm - 从 $query->setMaxResults() 获取奇怪的行为

symfony - 带有FosElastic的Symfony主义如何从ORM和Elastic一起搜索?

mysql - 在 Doctrine2 中使用 SQL 中的 RAND() 函数

php - 遍历行、更新并发送电子邮件

jquery - 传递附加变量 jqueryui 自动完成

symfony - JMS 序列化器通过继承反序列化学说实体