Reputation: 351
I have 3 different table in my database which are:
Leave {leave_id, leave_type, emp_id}
Employee {emp_id. emp_name, dept_id}
Department {dept_id, dept_name}
I wish to select leave_type, emp_name and dept_name based on leave_id.
How should I write this query?
Thanks
Upvotes: 2
Views: 150
Reputation: 2570
USE LEFT JOIN to Force join even when one of them has no value.
SELECT leave.leave_type, emp.emp_name, dept.dept_name
FROM Employee emp
LEFT JOIN Leave leave on emp.emp_id = leave.emp_id
LEFT JOIN Department dept on dept.dept_id = emp.dept_id
WHERE
leave.leave_id='{$YOUR_VALUE}'
Upvotes: 0
Reputation: 485
This option will return all rows where the join condition is met.
SELECT leave_type, emp_name, dept_name
FROM Leave
INNER JOIN Employee ON Leave.emp_id = Employee.emp_id
INNER JOIN Department ON Employee.dept_id = Department.dept_id
WHERE Leave.leave_id = ?
Upvotes: 0
Reputation: 10717
Try this one
SELECT leave_type, emp_name, dept_name
FROM Leave as l
JOIN Employee as e ON e.emp_id = l.leave_id
JOIN Department as d ON d.dept_id= l.leave_id
WHERE leave_id = $id
Upvotes: 0
Reputation: 15593
Select l.leave_type, e.emp_name, d.dept_name
FROM Leave l
JOIN Employee e ON l.emp_id = e.emp_id
JOIN Department d ON e.dept_id = l.dept_id
WHERE l.leave_id = '1'; //give leave_id which you want
Use the above query.
Upvotes: 1
Reputation: 841
Try this
select leave_type, emp_name ,dept_name from Leave, Employee, Department where Leave.emp_id = Employee.emp_id AND Employee.dept_id = Department.dept_id ;
Upvotes: 0