如何从两个选择语句中获得组合

时间:2018-09-10 21:41:31

标签: sql oracle

我的桌子是

ID   First_Name    Last_name    manager_ID     Unique_ID
12    Jon           Doe          25             CN=Jon Doe, DC=test,DC=COM
25    Steve         Smith        39             CN=steve smith, DC=test,dc=com

我想编写一个SQL,该SQL将为我提供经理的唯一ID,

select manager_id from test where ID = '12'

这将为我提供用户manager_ID

select unique_id from test where ID = '25' 

我可以在一条语句中组合以上sql语句,该语句将给我用户经理的unique_id作为输出吗?

2 个答案:

答案 0 :(得分:2)

您正在寻找一种自我加入的方式:

select m.unique_id
from test t join
     test m
     on t.manager_id = m.id
where t.ID = 12;

请注意,我删除了12周围的单引号。大概id是一个整数。您不应该将整数与字符串进行比较。

答案 1 :(得分:2)

除了将其连接到同一表之外,您还可以像这样创建嵌套的子查询语句。

SELECT unique_id FROM test WHERE ID =(SELECT manager_id FROM test WHERE ID = 12);

内部查询输出manager_id,其中id的{​​{1}}等于12,外部查询给出相关管理者的person