[我想显示特定员工的特定奖励数据模型功能在这里 公共功能get_all_awards($ id = null({
$this->db->select('tbl_employee_award.*', FALSE);
$this->db->select('tbl_employee.*', FALSE);
$this->db->select('tbl_designations.*', FALSE);
$this->db->select('tbl_department.department_name', FALSE);
$this->db->from('tbl_employee_award');
$this->db->join('tbl_employee', 'tbl_employee_award.employee_id = tbl_employee.employee_id', 'left');
$this->db->join('tbl_designations', 'tbl_designations.designations_id = tbl_employee.designations_id', 'left');
$this->db->join('tbl_department', 'tbl_department.department_id = tbl_designations.department_id', 'left');
$this->db->order_by("award_date", "desc");
if (!empty($id)) {
// var_dump($id);
//die();
$this->db->where('tbl_employee_award.employee_id',$id);
$query_result = $this->db->get();
$result = $query_result->row();
} else {
$query_result = $this->db->get();
$result = $query_result->result();
}
// var_dump( $result->employee_id);
// die();
return $result;
}][1]
您必须将基本表设置为员工表。因为您需要根据员工而不是奖励数据。
public function get_all_awards($id = NULL)
{
$this->db->select("E.id, E.employee_name, A.award_names, DES.designation, D.department_name");
$this->db->from('tbl_employee as E');
$this->db->join('tbl_employee_award as A', 'A.employee_id = E.employee_id', 'left');
$this->db->join('tbl_designations as DES', 'DES.designations_id = E.designations_id', 'left');
$this->db->join('tbl_department as D', 'D.department_id = E.department_id', 'left');
$this->db->order_by("A.award_date", "desc");
if($id !== NULL)
{
$this->db->where('E.employee_id', $id);
}
$query = $this->db->get();
$result = $query->result();
print_r($result);
die;
}
在上述查询中,如果您获得了员工的单一奖项,则结果将获得单行。如果员工获得了多个奖项,那么它将为同一员工返回多行,但要获得不同的奖项。如果任何员工赢得了两次奖项,则您也会获得两次记录。