我有这个表命名为"AFP"
:层次查询两个表
ID || NAME || AFP_FUSION_ID
10 || afp1 ||
20 || afp2 ||
30 || afp3 || 90
40 || afp4 || 30
50 || afp5 || 30
90 || afp6 ||
其中"ID" is a primary key
和"AFP_FUSION_ID" is a foreign key
是同一个表引用。
另外我还这个表称为"Registers"
:
Full Name || AFP_DESTINO
JOHN || 10
PETER || 20
ELENA || 10
MARCO || 90
DANIELA || 30
FELIPE || 40
其中
AFP_DESTINO is a foreign key that references to AFP.ID
我必须创建具有类似参数的数(10,20,30,40的功能, 50或90)并且必须返回相应的信息。
- 如果函数收到'10',函数必须返回数据
from "REGISTERS" where AFP_DESTINO = 10
。 - 如果收到'30'的函数必须返回数据
where AFP_DESTINO = 30, 40 or 50
。 - 如果函数收到'90',必须返回数据
where AFP_DESTINO = 90, 30, 40, 50
。
我必须使用Oracle,我有这样的:
select * from (select * from registers
full outer join afp
on registers.AFP_DESTINO = afp.ID) where afp_destino = 30 or afp_fusion_id = 30
(我来完善这个,后来转变为功能)。问题是如果我用'30'代替'90',当afp_destino = 40 or 50
我不会有数据。
有人可以帮我吗?
UPDATE:
我对解决这个验证码:
select * from (select * from registers
full outer join afp
on registers.AFP_DESTINO = afp.ID) connect by prior
afp_destino = afp_fusion_id start with afp_destino = 90
但会产生不一致,显得更行。
欢迎来到Stack Overflow!这是一个网站,您可以提问问题并获得有关您使用的软件遇到的问题的答案,但这不是“为我做作业”或“为我工作”网站。当你提出一个问题时,你应该包括你写的代码,你得到的具体错误或程序产生的结果,以及你期望的结果的解释。如果没有这些,我们可以做很多事情来帮助你。请编辑您的问题以显示您已完成的工作,并告诉我们代码存在哪些问题。再次,欢迎来到Stack Overflow! –