我在db messages和messages_recipient
中有两个表消息表包含以下列
message_id user_id message created_at
messages_recipient表包含以下列
message_recipient_id user_id message_id
发件人ID存储在邮件中,接收者ID存储在messages_recipient
中我有以下查询来获取发送给登录用户的消息
$this->db->select('messages.user_id');
$this->db->from('messages');
$this->db->join('messages_recipients','messages.message_id= messages_recipients.message_id');
$this->db->where( 'messages_recipients.user_id',$sende_id );
$query = $this->db->get();
它会将所有消息发送给用户,但我想获取最近发送给用户的消息来自同一用户
答案 0 :(得分:1)
$this->db->select('messages.user_id');
$this->db->from('messages');
$this->db->join('messages_recipients','messages.message_id = messages_recipients.message_id');
$this->db->where( 'messages_recipients.user_id',$sende_id );
$this->db->order_by("created_at", "desc");
$this->db->limit(2);
$query = $this->db->get();
可能这可能会有所帮助.. 按功能使用顺序并限制代码点火器,您将实现您想要的效果。
答案 1 :(得分:0)
您可以使用
之类的查询$this->db->select('messages.user_id');
$this->db->from('messages');
$this->db->join('messages_recipients','messages.message_id= messages_recipients.message_id');
$this->db->where( 'messages_recipients.user_id',$sende_id );
$this->db->order_by("created_at", "desc");
$this->db->limit(1);
就在这里,我按照日期的降序排列你的行,然后选择第一行,即最新一行。
希望这可以解决您的问题。