我有這個疑問,其工作原理非常好的所有值和相處最大值和最小值多個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'; –