我在下面有一个要求。
现在我必须得到如下输出
如何实现? 我已经写了下面的SQL,但是parent_position_id即将到来,而不是parent_position_code
select
hapf.position_code,
pphf.parent_position_id
from
hr_all_positions_f hapf, PER_POSITION_HIERARCHY_F pphf
where
hapf.position_id = pphf.position_id
我应该编写子查询吗?我应该如何进行? 这是Oracle SQL
谢谢, 湿婆
答案 0 :(得分:2)
没有人说过一次只能加入一个表:
select
chi.position_code,
par.position_code as parent_position_code
from
hr_all_positions_f hapf
INNER JOIN PER_POSITION_HIERARCHY_F chi on hapf.position_id = chi.position_id
INNER JOIN PER_POSITION_HIERARCHY_F par on hapf.parent_position_id = par.position_id
记住它;我看到人们一直在思考,他们只能加入一张桌子。如果一个表在3个不同的列中解码了一个值,那么您肯定可以在3次内连接同一张表...想象一下,如果它是一个地址表,并且一个Student有一个HomeAddressId,WorkAddressId和StudyAddressId,并且该地址表保存了所有这些地址-您需要将地址表与Student表连接3次以获取所有数据。