Mysql 加入三个表以获取贷款金额、员工总出勤率和工资

Mysql 加入三个表以获取贷款金额、员工总出勤率和工资,mysql,codeigniter,join,Mysql,Codeigniter,Join,我试图加入这三个表: ![核准贷款][2] 我很容易地加入了Employee和attention表,但无法使其适用于第三个表。下面是我连接两个表的代码: 批准的休假表: CREATE TABLE IF NOT EXISTS `approved_leave` ( `id` int(255) NOT NULL, `company` varchar(70) NOT NULL, `branch` varchar(70) NOT NULL, `dept` varchar(70) NOT NULL, `e

我试图加入这三个表: ![核准贷款][2]

我很容易地加入了
Employee
attention
表,但无法使其适用于第三个表。下面是我连接两个表的代码:

批准的休假
表:

CREATE TABLE IF NOT EXISTS `approved_leave` (
`id` int(255) NOT NULL,
`company` varchar(70) NOT NULL,
`branch` varchar(70) NOT NULL,
`dept` varchar(70) NOT NULL,
`emp_id` varchar(255) NOT NULL,
`leave_type` varchar(70) NOT NULL,
`day_number` varchar(70) NOT NULL,
`reason` varchar(70) NOT NULL,
`applied_date` date NOT NULL,
 `file` varchar(30) NOT NULL,
`approved_date` date NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `employee` (
`emp_id` varchar(20) NOT NULL,
`emp_name` varchar(30) NOT NULL,
`emp_contact` varchar(30) NOT NULL,
`com_address` varchar(30) NOT NULL,
`per_address` varchar(30) NOT NULL,
`com_phone` varchar(13) NOT NULL,
`com_email` varchar(20) NOT NULL,
`empid` int(20) NOT NULL,
`emp_company` varchar(20) NOT NULL,
`emp_branch` varchar(20) NOT NULL,
`emp_dept` varchar(20) NOT NULL,
`emp_designation` varchar(20) NOT NULL,
`emp_salary` varchar(30) NOT NULL,
`emp_type` varchar(10  NOT NULL,
`last_updated` date NOT NULL,
`active` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;

$this->db->select('COUNT(status),emp_name,employee_id,emp_salary')
->from('attendance a')->where('dept',$dept_id)
->join('employee e','a.employee_id=e.empid','left')->group_by('employee_id')
->get()->result();
出勤率
表:

 CREATE TABLE IF NOT EXISTS `attendance` (
`id` int(11) NOT NULL,
`company` varchar(20) NOT NULL,
`branch` varchar(55) NOT NULL,
`dept` varchar(100) NOT NULL,
`employee_id` varchar(255) NOT NULL,
`time` timestamp NOT NULL DEFAULT 
CURRENT_TIMESTAMP ON UPDATE        CURRENT_TIMESTAMP,
`status` varchar(12) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
员工
表格:

CREATE TABLE IF NOT EXISTS `approved_leave` (
`id` int(255) NOT NULL,
`company` varchar(70) NOT NULL,
`branch` varchar(70) NOT NULL,
`dept` varchar(70) NOT NULL,
`emp_id` varchar(255) NOT NULL,
`leave_type` varchar(70) NOT NULL,
`day_number` varchar(70) NOT NULL,
`reason` varchar(70) NOT NULL,
`applied_date` date NOT NULL,
 `file` varchar(30) NOT NULL,
`approved_date` date NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `employee` (
`emp_id` varchar(20) NOT NULL,
`emp_name` varchar(30) NOT NULL,
`emp_contact` varchar(30) NOT NULL,
`com_address` varchar(30) NOT NULL,
`per_address` varchar(30) NOT NULL,
`com_phone` varchar(13) NOT NULL,
`com_email` varchar(20) NOT NULL,
`empid` int(20) NOT NULL,
`emp_company` varchar(20) NOT NULL,
`emp_branch` varchar(20) NOT NULL,
`emp_dept` varchar(20) NOT NULL,
`emp_designation` varchar(20) NOT NULL,
`emp_salary` varchar(30) NOT NULL,
`emp_type` varchar(10  NOT NULL,
`last_updated` date NOT NULL,
`active` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;

$this->db->select('COUNT(status),emp_name,employee_id,emp_salary')
->from('attendance a')->where('dept',$dept_id)
->join('employee e','a.employee_id=e.empid','left')->group_by('employee_id')
->get()->result();
批准的表格列如下所示。我的目标是获得员工的贷款金额,如果他有:

id、贷款金额、原因、员工id、部门、分行、公司申请日期
尝试以下mysql查询:

$this->db->select('al.loan_amount,e.emp_name,a.employee_id,e.emp_salary')
->from('attendance a')->where('dept',$dept_id)
->join('employee e','a.employee_id=e.empid')
->join('approved_leave al','al.employee_id=e.empid')
->get()->result();

缺少第二个表映像。我只能发布2个映像,因此我在最后一行添加了列名。请检查。如果您使用这3个表的
CREATE table
mysql查询更新问题,那就太好了。您的问题没有与
approved\u loan
表相关的字段。很抱歉,当我在我的数据库中测试此问题时,显示了错误:$this->db->select('al.loan\u amount,e.emp\u name,a.employee\u id,e.emp\u salary')->from('attention a')->其中('dept',1)->join('employee e','a.employee\u id=e.emp\u name',left')->join('approved_leave al','al.emp_id=e.empid','left')->get()->result();错误:未知标点字符串@6 STR:->SQL:$this->db->select('al.loan_amount,e.emp_name,a.emp_id,e.emp_salary')->from('Attentication a')->where('dept',1)->join('employee e','a.employee_id=e.emp'>,'e.emp_id=e.emp'>,'e.emp'>)->join('->get()->result()我可以通过使用:$this->db->select('emp_name,emp_id,emp_salary,amount')->from('emp_company'=>$com_id,'emp_branch'=>$branch_id,'emp_dept'=>$dept_id,'active'=>1)获取贷款金额,其中(数组('emp_company=>emp_company=>com_id,'emp分支机构=>$branch id'=>$branch分支机构id,'emp),'emp部门=>$dept部门id,'active部门id,'1))->;但我也希望每位员工的总出勤率@Sankar V