2014-11-16 20 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 –