mysql - 连接三表即可得到贷款金额、员工总出勤率和工资

标签 mysql codeigniter join

我试图加入这三个表: attendance ![approved_loan][2] employee

我设法轻松加入EmployeeAttendance表,但无法使其适用于第三个表。这是我连接两个表的代码:

Approved_leave 表:

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 `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 `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();

关于mysql - 连接三表即可得到贷款金额、员工总出勤率和工资,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36589075/

相关文章:

mysql - 如何从 MY SQL 选择查询中删除整数逗号

php - 使用 Ajax 和 MySql 分离结构

javascript - TinyMCE 标准表情符号不显示在前端

php - Codeigniter 3 分页错误 : the second page shows records 3 to 13 instead of 11 to 20

mysql - 帮助将此 sql 查询转换为 'JOIN' 语法

php - Mysql select order by 就像一个字符串,而不是一个数字

mysql - SQL 排序,使得行仅在另一个列值相等的情况下排序

php - CodeIgniter PHP Apache 500 内部服务器错误

SQL空间连接

mysql - HAVING COUNT 接收其他 COUNT 值