Oracle SQL连接

Oracle SQL连接,sql,oracle11g,Sql,Oracle11g,我有以下两个表格: tbl_emp emp_code name 1 A 2 B 3 C 4 D tbl_从_到 col_from col_to 4 2 1 2 2 3 3 4 我想要的是这样的输出: res_from res_to D B A B B C C

我有以下两个表格:

tbl_emp

emp_code    name
1           A
2           B
3           C
4           D
tbl_从_到

col_from    col_to
4           2
1           2
2           3
3           4
我想要的是这样的输出:

res_from    res_to
D           B
A           B
B           C
C           D
我试过:

select emp.name, emp.name
from tbl_emp emp
join tbl_from_to
on emp.emp_code = ft.col_from
or --also tried and
emp.emp_code = ft.col_to
结果是这样的

 res_from    res_to
 D           D
 A           A
 B           B
 C           C

尝试将桥接表连接到employee表两次:

下面的演示是在SQL Server中给出的(因为我很难设置Oracle演示),但它应该直接运行剪切粘贴到Oracle中


尝试将桥接表连接到employee表两次:

下面的演示是在SQL Server中给出的(因为我很难设置Oracle演示),但它应该直接运行剪切粘贴到Oracle中


这应该可以做到:

select e1.name as res_from, e2.name as res_to
from tbl_from_to ft
join tbl_emp e1 on e1.emp_code = ft.col_from
join tbl_emp e2 on e1.emp_code = ft.col_to

我希望这会有所帮助。

这应该可以做到:

select e1.name as res_from, e2.name as res_to
from tbl_from_to ft
join tbl_emp e1 on e1.emp_code = ft.col_from
join tbl_emp e2 on e1.emp_code = ft.col_to

我希望这能有所帮助。

它也能起作用。但是你的答案与@Tim Biegeleisen?@SurfacetExtension有什么不同?除了Tim使用左连接外,没有什么不同,其余的只是别名的不同名称。留下连接意味着引用不一定存在于tbl_emp表中,如果它们不存在,您仍然会得到tbl_中每一行的结果,从_到其中一些可能包含“null”。我的观点是,它们确实需要存在,如果不存在,则带有错误引用的行基本上被视为无效,并被排除在外。如果引用总是存在的,那么无论哪种方式,结果都是一样的。这也很有效。但是你的答案与@Tim Biegeleisen?@SurfacetExtension有什么不同?除了Tim使用左连接外,没有什么不同,其余的只是别名的不同名称。留下连接意味着引用不一定存在于tbl_emp表中,如果它们不存在,您仍然会得到tbl_中每一行的结果,从_到其中一些可能包含“null”。我的观点是,它们确实需要存在,如果不存在,则带有错误引用的行基本上被视为无效,并被排除在外。如果引用始终存在,则结果是相同的。