内连接从codeigniter中的4个表中获取数据

时间:2014-09-26 05:21:11

标签: php codeigniter

我开发了一个应用程序,我向客户和代理发送消息。 有表保存这些记录一个是为客户发送的,第二个是代理的收件箱。 我想在一页上向客户和代理商列出我发送的所有信息。

我将从此查询发送给客户

 function  getSentRecords($start, $limit,$user_id){

 $query=$this->db->query("select msg.*,cust.name from sent msg,customers cust where msg.from_id=$user_id and cust.id=msg.to_id limit $limit, $start");
 return $query->result_array();
}

并在此功能发送给代理的其他页面

 function  getInboxRecords($start, $limit,$user_id){

    //$user_id = $this->session->userdata('admin_id');
     $query=$this->db->query("select msg.*,cust.name from inbox msg,admin adm where    msg.to_id=$user_id and adm.id=msg.from_id limit $limit, $start");
    //$this->db->limit($limit, $start);

    return $query->result_array();
  } 

如何将我在一个页面发送到内部联接请帮助

1 个答案:

答案 0 :(得分:2)

您可以使用UNION:

$query = "
  SELECT msg.*,cust.name, 'customers' as typ FROM sent msg
      JOIN customers cust ON cust.id = msg.to_id
  where msg.to_id = $user_id

  UNION

  SELECT msg.*,cust.name, 'agent' as typ FROM inbox msg
      JOIN admin adm ON adm.id = msg.from_id
  where msg.to_id = $user_id
";
return $query->result_array();

您可以在mysql here中阅读有关UNION的更多信息。