0
我有2个表格,我必须从日期得到最后10个活动项目ID。查询是:MySQL group by after union#1064 error
(
SELECT project_posts.projectid as projectId, `project_posts`.`date` as rowDate
FROM `project_posts` ORDER BY `project_posts`.id DESC
)
UNION ALL
(SELECT `project_comments`.projectid as projectId, project_comments.`date` as rowDate FROM `project_comments` ORDER BY `project_comments`.id DESC) GROUP BY projectId ORDER BY rowDate DESC LIMIT 10
而我想通过rowDate DESC(最后项目第一)对它排序。问题是,当我被MySQL添加组说:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY projectId ORDER BY rowDate DESC LIMIT 6' at line 9
我看着在互联网上与工会,工会都和group by的问题,但我没有找到任何解决方案。 在此先感谢。
非常感谢您的快速回复。现在查询运行,但排序不正确,我没有拿到最后的项目ID(当我为日期DESC排序的两个塔布运行单独的select时,它们是不同的)。我尝试用ORDER BY'project_comments'.'date' DESC和'project_posts'.'date' DESC来更改每个select(在UNION中)的ORDER BY子句,但它仍然存在。任何建议?提前致谢。 – some12die4 2012-03-01 21:04:00
我刚刚阅读您的原始文章。到底什么是最终目标和什么是表结构?我不认为用UNION进行查询是最好的方法。 – nnichols 2012-03-01 21:26:50
对不起,误会。我想根据他们的活动(帖子和评论)获取最近10个活动项目。我没有找到与工会不同的方式。 – some12die4 2012-03-01 21:40:10