통지

2014-11-16 2 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 | 
+----+------+--------+--------+------------+ 

의 사용자 1, 2, 3가 동일한 개체 3을 좋아했다. 우리는 단순한 SELECT 쿼리를 주면 알림 창에서,이 같은 보여줍니다

  • 사용자 1이 객체 3을 좋아했다. 2 분 전
  • 사용자 2 님의 관심사는 3입니다. 2 분 전
  • 사용자 3 님의 관심사는 3입니다. 2 분 전
  • 사용자 3은 (는) 객체 5을 공유합니다. 2 분 전

그러나 작업이 동일한 개체에서 수행 되었기 때문에, 내가 무리 또는 그룹이 같은 알림 싶습니다 :

  • 사용자 1, 2는, 3 좋아했다 객체 3. 2 분 전
  • 사용자 3은 (는) 객체 5을 공유합니다. 2 분 전 나는 다음과 같은 질문이

:

  1. 을 어떻게 그룹/무리 알림을합니까?
  2. notifications 테이블 스키마가 올바른 것입니까?

답변

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

중간에 '공유'가 있으면 작동하지 않습니다. –

+0

와우, 고마워. 일했다! ': D' –

+1

시도해보기 : http://sqlfiddle.com/#!2/7b927/1 –