我如何使用mysql join来安排最新回复的对话

时间:2016-03-21 09:51:15

标签: php mysql codeigniter

我们有两张表,附带截图

this image contains every single piece of message sent

此表名为message

this image contacts details of a every conversation started by a student to teacher

此表名为会话

现在每次学生发送消息时,会话表都会通过convo唯一ID检查对话是否存在,然后将消息放在数据库中,sender_id作为学生{{1}的唯一ID }}作为教师的唯一ID,receiver_id作为conversation_id,对于每个学生和教师的对话都是唯一的。

我们想要做的是,我们希望显示像facebook这样的对话,最新的对话与最新的消息将在顶部,我们将找到最新的消息与created_at,当然学生只能看到对话他开始,帮助我们,我们被困在这里,无法为它编写正确的mysql查询,我们使用codeigniter框架为我们的后端

到目前为止,我们想出了这个,但似乎无法正常工作

convo

1 个答案:

答案 0 :(得分:0)

$this->db->select('*');
$this->db->from($this->conversation_table_name);
$this->db->join($this->message_table_name,'conversation.convo = messages.convo');
$this->db->where('conversation.student',$student_number);
$this->db->group_by("conversation.sender_id");
$this->db->order_by("messages.created_at", "desc"); 
$query = $this->db->get();