我设计了一个表结构的群聊(读取功能,用户和工作人员很多)。
我想获取工作人员未读邮件的列表,但我不能。如果写什么查询,还是将检索未读消息列表。
的SQL
select * from chat as c inner join chat_group as cg on c.chat_group_id = cg.id left join chat_read cr on c.id = cr.chat_id
表结构
user: id, name
staff: id, name
chat_group: id, name
chat: id, chat_group_id, user_id, staff_id, comment
chat_read: id, chat_id, user_id, staff_id
资料范例
user:
1, hoge_user
2, foo_user
staff:
1, hoge_staff
2, foo_staff
chat_group:
1, test_group
chat:
1, 1, null, 1, "hello hoge_staff"
2, 1, 1, null, "hello hoge_user"
chat_read: (Comments posted on their own will not be registered as read)
1, 1, null, 1
2, 2, 1, null
3, 1, null, 2 <- foo staff also read not do anything
4, 2, null, 2
最佳答案
从我的角度来看,您可以在聊天表中包含一个标志,您可以在其中管理聊天消息的状态。
因此您可以这样查询:
select * from chat c, chat_group cg where c.chat_group_id = cg.id and c.status = 'READ';
您可以将标志设置为int,并从代码中创建一个枚举来管理它。这是我们在https://www.applozic.com处解决的类似问题
关于mysql - 我想获取群聊的未读评论列表(mysql,sql),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39675712/