2016-04-13 6 views
0

Ich habe versucht, diese drei Tabellen zu verknüpfen: attendance [approved_loan] [2] employeeMitglied werden drei Tabellenkreditbetrag zu erhalten, Mitarbeiter Gesamtbesucherzahl und Gehalt

ich es geschafft Employee und Attendance Tisch leicht zu betreten! aber kann es nicht für die dritte Tabelle arbeiten. Hier ist mein Code die zwei Tabelle anschließen:

Approved_leave Tabelle:

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; 

Attendance Tabelle:

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; 

Employee Tabelle:

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

genehmigt Tabellenspalte sind unten geschrieben . Mein Ziel ist es Kreditbetrag des Mitarbeiters, wenn er hat:
id, loan_amount, reason, employee_id, dept, branch, company applied_date

+0

Die zweite Tabelle Bild fehlt. –

+0

ich darf nur 2 Bilder posten, also habe ich den Spaltennamen in der letzten Zeile hinzugefügt bitte überprüfen – Kevin

+0

Es wird nett sein, wenn Sie die Frage mit 'CREATE TABLE'mysql Abfrage dieser 3 Tabellen aktualisieren. Ihre Frage enthält keine Felder, die sich auf die Tabelle "approved_loan" beziehen. –

Antwort

0

Versuchen Sie, die unten mysql query:

$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(); 
+0

Es tut mir leid, es zeigt Fehler, während ich dies in meiner Datenbank testen: $ this-> db-> select ('al.loan_amount, e.emp_name, a.employee_id, e.emp_salary') -> von ('Anwesenheit') -> wo ('dept', 1) -> join ('Mitarbeiter e', 'a.employee_id = e.empid', 'left') -> beitreten ('approved_leave al', 'al.employee_id = e .empid ',' left ') -> get() -> result(); – Kevin

+0

Was ist der Fehler? –

+0

FEHLER: Unbekannte Interpunktionsstring @ 6 STR: -> SQL: $ this-> db-> auswählen ('al.loan_amount, e.emp_name, a.employee_id, e.emp_salary') -> von ('Teilnahme a ') -> wo (' dept ', 1) -> beitreten (' Mitarbeiter e ',' a.employee_id = e.empid ',' left ') -> beitreten (' approved_leave al ',' al.employee_id = e .empid ',' left ') -> get() -> result() – Kevin

Verwandte Themen