聚集一组通知

时间:2014-11-16 01:10:48

标签: php mysql notifications grouping

我有一张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喜欢对象3 2分钟前
  • 用户2喜欢对象3 2分钟前
  • 用户3喜欢对象3 2分钟前
  • 用户3已共享对象5 2分钟前

但是由于动作已在同一个对象上完成,我想将这些通知捆绑或分组:

  • 用户123喜欢对象3 2分钟前
  • 用户3已共享对象5 2分钟前

我有以下问题:

  1. 如何对通知进行分组/捆绑?
  2. 我的notifications表架构是否正确?

1 个答案:

答案 0 :(得分:1)

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