2014-11-16 51 views
1

的我有我notifications表:聚束一組通知

+----+------+--------+--------+------------+ 
| ID | User | Object | Action | TimeStamp | 
+----+------+--------+--------+------------+ 
| 1 | 1 |  3 | Like | 2014-05-01 | 
| 2 | 2 |  3 | Like | 2014-05-01 | 
| 3 | 3 |  3 | Like | 2014-05-01 | 
| 4 | 3 |  5 | Share | 2014-05-01 | 
+----+------+--------+--------+------------+ 

如果你可以看到,用戶123都喜歡同一個對象3。在通知窗口中,如果我們只給一個簡單的SELECT查詢時,它這樣表示:

  • 用戶1就喜歡對象32分鐘前
  • 用戶2已贊過對象32分鐘前
  • 用戶3已贊過對象32分鐘前
  • 用戶3已共享對象52分鐘前

但由於行動已經在同一個對象上完成的,我想幫或組的通知是這樣的:

  • 用戶123就喜歡對象32分鐘前
  • 用戶3已共享對象52分鐘前

我有以下問題:

  1. 我如何組/一堆的通知?
  2. 我的notifications表架構是正確的嗎?

回答

1
select object, action, group_concat(`user`) as users 
from notifications 
group by object, action 
+0

如果中間有一個「Share」,這不起作用! –

+0

哇,謝謝。成功了! ':D' –

+1

嘗試它在這裏:http://sqlfiddle.com/#!2/7b927/1 –