在codeigniter中连接两个表时重复的数据

时间:2018-03-28 08:42:23

标签: php codeigniter join

enter image description here

我尝试使用连接获取数据,数据正在重复,

控制器代码为:

public function searchjobs2()
{
    //$id=$_SESSION['id'];
    $lan = $_POST["picke"]; //var_dump($id);die(); 
    $value['list']=$this->Free_model->get_jobs($lan);//var_dump($value);die();
    $this->load->view('free/header');
    $this->load->view('free/searchjobs2',$value);
}

模特:

public function get_jobs($lan)
{
    $this->db->select('*');
    $this->db->from("tbl_work_stats");
    $this->db->join("tbl_work", "tbl_work.login_id = tbl_work_stats.login_id",'inner');
    $this->db->where("language LIKE '%$lan%'");
    // $this->db->where('tbl_work_stats.login_id',$id);
    $this->db->order_by('insertdate','asc');

    $query=$this->db->get()->result_array();//var_dump($query);die();
    return $query;
}

我用过

foreach ($list as $row){
    ...
}

列出。

2 个答案:

答案 0 :(得分:0)

使用distinct将删除重复的字段:

$this->db->distinct(); 

答案 1 :(得分:0)

你的意思是加入login_id? 我猜这是用户登录,对于tbl_work_stats和tbl_work的许多条目都是一样的。

你没有发布你的架构,但是login_id似乎不适合加入。 tbl_work.id = tbl_work_stats.tbl_work_id之类的东西怎么样?

CI $ db也会返回self,所以你可以这样做:

public function get_jobs(string $lan):array
{
  return $this->db->select()
     ->from('tbl_work_stats')
     ->join('tbl_work','tbl_work.id = tbl_work_stats.work_id')
     ->like('language',$lan)
     ->order_by('insertdate')
     ->get()
     ->result_array();
 }