2

我的数据库中有 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。

我应该如何编写这个查询?

谢谢

4

5 回答 5

1
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

使用上面的查询。

于 2013-08-27T05:44:30.993 回答
0

尝试这个

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 ;
于 2013-08-27T05:43:30.583 回答
0

试试这个

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
于 2013-08-27T05:44:43.200 回答
0

此选项将返回满足连接条件的所有行。

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 = ?
于 2013-08-27T05:44:58.590 回答
0

使用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}'
于 2013-08-27T05:47:37.350 回答