【问题标题】:Parent child relationship Join tables in oracle sqloracle sql中的父子关系join表
【发布时间】:2019-04-28 03:45:54
【问题描述】:

我有以下要求。

现在我必须得到如下输出

如何做到这一点? 我已经写了下面的 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

谢谢, 希瓦姆

【问题讨论】:

  • 提示:JOIN。还有JOIN
  • 你能告诉我这些连接是如何工作的吗?
  • 我明白了,我用这个 SQL 查询作为一个表来加入另一个查询。我认为这是正确的

标签: sql oracle join oracle11g


【解决方案1】:

从来没有人说过你只能加入一次表:

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 次......想象一下,如果它是一个地址表,一个学生有一个 HomeAddressId、WorkAddressId 和 StudyAddressId,而地址表包含所有这些地址 - 您将地址表加入学生表 3 次以获取所有数据..

【讨论】:

  • 感谢您的详细回复,这比我做的要简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多