我有一个通知表如下
|id|user_receiver|user_sender|post_id|action|date|is_read
这user_sender
是生成通知的人,user_receiver
是收到通知的人,post_id
是帖子的ID,action
可以是喜欢,评论等,is_read
如果接收者读取则为1,否则为0
我想获取登录用户的所有通知
我正在使用的查询是
SELECT id, user_receiver, user_sender, post_id, action,
max(date) as date, is_read
FROM notification
WHERE user_receiver=$ses_user
group by user_sender, action,post_id,is_read
order by date desc
但即使我正在使用它也没有给我最新的行,max(date)
而且我还想获得未读通知的数量。
如果有多行具有相同的 post_id、user_sender 和 action 并且应该是最新的,我只想要一行。例如一个用户喜欢一个帖子,一行被添加到表中,然后用户又不喜欢和喜欢,然后再次添加一个新行,我只想要新行。