Mysql 隐藏聊天室中比其他表中的时间戳早的消息

Mysql 隐藏聊天室中比其他表中的时间戳早的消息,mysql,laravel,join,Mysql,Laravel,Join,我有以下用于聊天系统的数据库结构: 请看下面的小提琴 对话 +---------+ |列名| +---------+ |对话编号| |名字| |创建于| |更新地址| +---------+ 对话与参与者 +---------+ |列名| +---------+ |身份证| |用户id| |对话编号| |删除| +---------+ 信息 +---------+ |列名| +---------+ |消息id| |用户id| |对话编号| |信息| |创建于| |更新地址| +---------

我有以下用于聊天系统的数据库结构:

请看下面的小提琴

对话 +---------+ |列名| +---------+ |对话编号| |名字| |创建于| |更新地址| +---------+ 对话与参与者 +---------+ |列名| +---------+ |身份证| |用户id| |对话编号| |删除| +---------+ 信息 +---------+ |列名| +---------+ |消息id| |用户id| |对话编号| |信息| |创建于| |更新地址| +---------+ 我还根据这个建议获取最后的x条消息

现在,我只需要获取比时间戳deleted\u(可以为null)更新的消息

由于我使用Laravels,我很难调整查询,使其在没有特定对话id的情况下工作

我需要在查询中包含最后x条消息。如果我只获取一个特定的对话,它也可以工作

选择 * 从…起 选择 `消息“%1”, @秩:=如果 @组=对话id, @排名+1, 1.
作为级别_bae5f28cab9179ba9b470ec66ec93b7b, @组:=对话id作为组_bae5f28cab9179ba9b470ec66ec93b7b 从…起 选择 @排名:=0, @组:=0 作为VAR, 信息, 选择 IFNULL 已删除(网址:, '0000-00-00 00:00:00' 已在中删除 从…起 对话与参与者 哪里 对话参与者。对话参与者id=84,对话参与者。用户id=1 限制1 已在中删除 哪里 messages.created_at>deleted_at 订购人 `对话_id`ASC, `创建于` 描述 作为信息 哪里
`请确保排名为'bae5f28cab9179ba9b470ec66ec93b7b'。是否希望用户参与的最后10条未删除的消息删除为空?正确。对话的最后10条消息,其中messages.created_at>conversation_participants.deleted_at。如果delete为NULL,则不应过滤任何消息rank_bae5f28cab9179ba9b470ec66ec93b7b?@由php生成的草莓变量名称,并基于时间和用户进行哈希。但这有何用处?这似乎只是让疑问和问题变得不那么容易理解