我的数据库中有 3 个不同的表,它们是:
Leave {leave_id, leave_type, emp_id}
Employee {emp_id. emp_name, dept_id}
Department {dept_id, dept_name}
我希望根据 leave_id 选择 leave_type、emp_name 和 dept_name。
我应该如何编写这个查询?
谢谢
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
使用上面的查询。
尝试这个
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 ;
试试这个
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
此选项将返回满足连接条件的所有行。
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 = ?
使用LEFT JOIN强制加入,即使其中一个没有价值。
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}'