显示员工KING和FORD管理的员工姓名及其经理姓名。
时间: 2024-05-11 07:17:11 浏览: 57
可以使用如下的 SQL 语句来显示员工 KING 和 FORD 管理的员工姓名及其经理姓名:
```
SELECT e1.ename, e2.ename AS manager_name
FROM emp e1
JOIN emp e2 ON e1.mgr = e2.empno
WHERE e2.ename IN ('KING', 'FORD');
```
这个查询语句使用了两个 `emp` 表的实例 `e1` 和 `e2`,`e1` 表示员工,`e2` 表示经理。`JOIN` 关键字用于将这两个表连接起来,`e1.mgr = e2.empno` 表示 `e1` 表中的 `mgr` 列与 `e2` 表中的 `empno` 列相等,即 `e1` 表中的员工的经理是 `e2` 表中的某个员工。在 `WHERE` 子句中,我们筛选出经理姓名为 'KING' 或 'FORD' 的记录,最后选取查询结果中的员工姓名和经理姓名两列。
相关问题
pl/sql显示员工KING 和FORD 管理的员工姓名及其经理姓名。
在Oracle数据库中,PL/SQL是一种过程化语言,可以用于编写存储过程、触发器等。如果你有一个包含员工信息(如ID、姓名和经理ID)的表,比如`Employees`,你可以编写一个查询来获取KING和FORD管理的员工及其对应的经理姓名。这里是一个基本的示例:
```sql
DECLARE
CURSOR emp_cursor IS
SELECT E1.employee_name AS employee_name,
E2.employee_name AS manager_name
FROM Employees E1
JOIN Employees E2 ON E1.manager_id = E2.employee_id
WHERE E1.employee_name IN ('KING', 'FORD');
BEGIN
FOR rec IN emp_cursor LOOP
DBMS_OUTPUT.PUT_LINE('Employee: ' || rec.employee_name || ', Manager: ' || rec.manager_name);
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No employees found for King or Ford.');
END;
/
```
这个查询创建了一个游标`emp_cursor`,它遍历两个表,通过`manager_id`关联每个员工与其经理,并打印出结果。如果找不到匹配的员工,会捕获`NO_DATA_FOUND`异常并输出相应消息。
阅读全文