2013-03-22 44 views
-3

我试图向用户显示本月有更多帖子添加到列表中。但不起作用。本月查询的sql查询,以及发过帖子的用户

SELECT *,SUM(post_id) FROM `posts` Where YEAR(date) = YEAR(NOW()) AND MONTH(date) = MONTH(NOW()) GROUP BY user_id ORDER BY id DESC LIMIT 0 , 18 

SQL表中的数据:

INSERT INTO `posts` (`id`, `api_id`, `user_id`, `group_id`, `message`, `mentioned`, `attached`, `posttags`, `comments`, `reshares`, `date`, `date_lastedit`, `date_lastcomment`, `ip_addr`) VALUES 
(1, 0, 1, 0, 'text', 0, 0, 0, 0, 0, 1360378616, 0, 1360378616, 0); 
+0

你的错误是什么? – Kasnady 2013-03-22 08:48:47

+0

选择任何不属于GROUPING的部分在大多数SQL方言中都是非法的。 (MySQL容忍它,基于服务器配置,但随后从组中的一行中随机提供列值。) – CBroe 2013-03-22 08:51:58

+0

在发布问题前阅读http://stackoverflow.com/faq – VSK 2013-03-22 09:07:43

回答

1

你应该在SELECT子句指定列名相同的是,在by子句 组尝试。

SELECT user_id,SUM(post_id) FROM `posts` Where YEAR(date) = YEAR(NOW()) AND MONTH(date) = MONTH(NOW()) GROUP BY user_id ORDER BY user_id DESC LIMIT 0 , 18