mysql - 如果值存在于同一个表的另一列中,如何找到相应的列值

标签 mysql sql

employee_name 列包含所有员工姓名及其对应的employee_ID,manager_ID 列包含所有员工的经理的employee_ID

在这里我想让所有员工都知道他们的mangers_names

注意:经理也是公司的员工,因此 manager_ID ,employee_ID 包含相同的值

请参见下表

select * from  test1.employee;

Employee_id Employee_Name  Manager_ID
1124        Annapurna      1125 
1125        Jaseel         
1126        Shilpa         1125

select employee_Name, employee_Name as manager_Name from
employee   where Employee_id  in (select Manager_ID from employee ) ;

RESULT:
employee_Name manager_Name
Jaseel         Jaseel         

select * from  test1.employee;

select employee_Name, employee_Name as manager_Name from
 employee   where Employee_id  in (select Manager_ID from employee ) ;


employee_Name manager_Name
Annapurna     jaseel
Shilpa        Annapurna

最佳答案

假设您只想搜索上一级(如示例数据所示),您可以直接自连接表,例如:

SELECT 
    t1.Employee_Name,
    t2.Employee_Name Manager_Name
FROM
    test1.employee t1
    LEFT JOIN test1.employee t2 
        ON t2.Employee_id = t1.Manager_id

注意:由于我们使用 LEFT JOIN,如果员工没有经理,它将出现在结果集中,且 Manager_name 为 NULL。

关于mysql - 如果值存在于同一个表的另一列中,如何找到相应的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54267811/

相关文章:

mysql - 为什么我无法更改 mysql 中的用户密码?

php - 将大型 mysql 表拆分为多个表并在 php 应用程序中读取它们的最佳方法?

sql - SQLite Delphi认为不正确的异常

具有动态列截断键值的 MySQL 数据透视表查询

MySQL 删除错误 - 无法在 FROM 子句中指定更新目标表

MySQL创建表时出现重复键?

mysql - 另一列中包含的 boolean 值列 - SQL

sql - 谁删除了我的sql表行?

sql - 使用 google bigquery 构建直方图

mysql密码弄乱了我的转储