我正在使用CodeIgniter,在我的sql连接查询中,它获取重复值。例如,如果tbl_employee_contact
有两个联系号码,则会显示两次相同的记录,每个联系号码都不同。如何只显示一条记录?
这是我的模特
function get_records(){
$this->db->select(array(
'tbl_employee_registration.emp_id',
'tbl_employee_registration.emp_fname',
'tbl_employee_registration.emp_email',
'tbl_employee_registration.emp_status',
'tbl_employee_contact.emp_contact',
));
$this->db->from('tbl_employee_registration');
$this->db->join('tbl_employee_contact','tbl_employee_contact.emp_id=tbl_employee_registration.emp_id');
$query = $this->db->get();
return $query->result();
}
这是我的控制器
function manage_operators(){
$data = array();
if($query = $this->mod_employee->get_records())
{
$data['records'] = $query;
}
$this->load->view('admin/admin_manage_operators',$data);
}
答案 0 :(得分:1)
您需要名为GROUP BY
的内容或将DISTINCT
添加到您的选择查询中。
$this->db->select(array(
'DISTINCT tbl_employee_registration.emp_id',
'DISTINCT tbl_employee_registration.emp_fname',
'DISTINCT tbl_employee_registration.emp_email',
'DISTINCT tbl_employee_registration.emp_status',
'DISTINCT tbl_employee_contact.emp_contact',
));
或者您可以选择所有数据,但在循环中只需添加具有唯一ID的数组,例如
$arr[$ID][] = $record
答案 1 :(得分:1)
您可以使用group_by
$this->db->group_by("your table");
最后你的模型看起来像这样
function get_records(){
$this->db->select(array(
'tbl_employee_registration.emp_id',
'tbl_employee_registration.emp_fname',
'tbl_employee_registration.emp_email',
'tbl_employee_registration.emp_status',
'tbl_employee_contact.emp_contact',
));
$this->db->from('tbl_employee_registration');
$this->db->join('tbl_employee_contact','tbl_employee_contact.emp_id=tbl_employee_registration.emp_id');
$this->db->group_by("tbl_employee_registration.emp_id");
$query = $this->db->get();
return $query->result();
}