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();
感谢您的帮助。
答案 0 :(得分:1)
创建视图,保留已经反向排序的虚拟表:
创建视图v_latest_posts AS SELECT * FROM post ORDER BY timestamp DESC
使用select中的视图:
SELECT * FROM v_latest_posts GROUP BY topic_id ORDER BY时间戳DESC,位置ASC 限制15