PhalconPHP无法解析我的查询

时间:2015-07-21 09:03:34

标签: php mysql sql phalcon

SELECT * FROM
(SELECT post.* FROM post ORDER BY post.timestamp DESC) as post
GROUP BY post.topic_id
ORDER BY post.timestamp DESC, post.position
LIMIT 15

Phalcon在尝试执行上述查询时抛出以下错误。查询本身在默认sql上运行正常。

Syntax error, unexpected token (, near to ' SELECT post.* FROM post ORDER BY post.timestamp DESC ) as post GROUP BY post.topic_id ORDER BY post.timestamp DESC, post.position LIMIT 15', when parsing: SELECT * FROM ( SELECT post.* FROM post ORDER BY post.timestamp DESC ) as post GROUP BY post.topic_id ORDER BY post.timestamp DESC, post.position LIMIT 15 (162)

使用以下PHP代码(用于测试):

$sql = <<< QUERY
    *query*
QUERY;

$query = $this->modelsManager->createQuery($sql);
$result = $query->execute();

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

  1. 创建视图,保留已经反向排序的虚拟表:

    创建视图v_latest_posts AS SELECT * FROM post ORDER BY timestamp DESC

  2. 使用select中的视图:

    SELECT * FROM v_latest_posts GROUP BY topic_id ORDER BY时间戳DESC,位置ASC 限制15