我有这个疑问,其工作原理非常好的所有值和相处最大值和最小值多个where子句
SELECT cm.id ,cm.edited,cm.date_edited,cm.voteup,cm.votedown
FROM chat_messages cm
WHERE TIMESTAMPDIFF(SECOND,cm.date_edited,'$now') < 10 GROUP BY cm.id
这给了我这是在不到然后在10秒编辑的条目。
但与我尝试也得到max(voteup)
和min(votedown)
但不影响第一查询的第一项一起。我如何结合然后获得我需要的所有条目?
例如:
如果我得到3个新的更新条目。我想让他们3加上投票和投票的最大值。
实施例:
id edited date_edited voteup votedown
37 0 2016-03-05 22:13:03 5 0
38 0 2016-04-02 11:15:00 3 7
39 0 2016-03-05 22:10:06 10 6
40 0 2016-03-20 21:40:06 5 0
41 1 2016-04-20 22:28:59 5 0
42 1 2016-03-20 21:59:15 0 20
43 1 2016-04-21 22:20:25 8 0 <---- this new updated
我希望结果是
id edited date_edited voteup votedown maxup maxdown
39 0 2016-03-05 22:10:06 10 6 10 NULL
42 1 2016-03-20 21:59:15 0 20 NUll 20
43 1 2016-04-21 22:20:25 8 0 NULL NULL
我$now
时间是2016-04-21 22:20:20
解释:
-id 39 is having maxup vote i want get it
-id 42 is having maxdown i want get it
-id 43 is newly updated in that period of 10 seconds.
,所以我一般我想获得新的更新条目,请上下调整大小。
如果许多最大voteup值相同,则只需选择一个已分钟votedown
任何解决这一PLS?
您的sql小提琴没有'id'字段,您在上面的工作语句的'GROUP BY'子句中使用了它。 –
@JeffPuckettII编辑,对不起,我的意思是编号:) –
你在上面的select语句中仍然有'cm.userid'; –