【发布时间】:2016-02-25 19:31:28
【问题描述】:
账户表:
ID_ACC PARENT_ACC
76543 76543 <-edit
18252 76543
34456 76543
456567 76543
457564 65424
45654242 6556756
信息表:
ID account_id product_id
875621 18252 98567
875621 34456 98567
产品表:
ACCOUNTID PRODUCT_ID
456452 98567
帐户表包含帐户的 ID。但是一些账户(ID_ACC)有父账户(Parent_acc) - 这个例子展示了
ID_ACC: 18252,
34456,
456567
具有相同的 parent_acc (76543)。
一些孩子有信息(信息表)
(本例表示18252和34456与信息表连接)
接下来,一些 info.account_id 包含产品(产品表)(在此示例中 - 只有 18252 accountid 的产品具有帐号:456452。)
Account.id_acc=Info.account_id
Info.product_id=Product_id.product_id
我想选择所有帐户层次结构:
76543,
18252,
34456,
456567,
456452.
(对我来说)最难的事情是我需要基于表格(展示)。如果 to_show 表由例如填充。 34456 然后帐户输出需要与上面的列表相同。
如果 to_show 表由例如填充。 "76543,18252,34456" 那么情况同上,以此类推...
我所需要的只是呈现所有层次结构,无论哪个帐户(在产品表或信息或帐户中)在 to_show 表中......作为输入,我可以从产品表中获取子/父或帐户。 我试图这样做,但不幸的是这对我来说太难了(因为我在层次结构查询中完全是新手..)。 伙计们,你能帮帮我吗?
create table account (
id_acc number,
parent_acc number
)
;
create table info
(
ID number,
Account_id number,
Product_id number
);
create table product (
Account_id number,
product_id number
);
create table to_show (
ID number
);
insert into account (id_acc,parent_acc)) values (76543,76543);
insert into account (id_acc,parent_acc) values (18252,76543);
insert into account (id_acc,parent_acc) values (34456,76543);
insert into account (id_acc,parent_acc) values (456567,76543);
insert into account (id_acc,parent_acc) values (457564,65424);
insert into account (id_acc,parent_acc) values (45654242,6556756);
insert into info values (875621,18252,98567);
insert into info values (875621,34456,null);
insert into product values (456452,98567);
insert into to_show values (34456);
【问题讨论】:
-
我很乐意提供帮助;但我不知道你真正追求的是什么。这对我来说似乎不是等级制度。但是与 76543 相关的所有帐户的列表。这就是你真正想要的吗?以某种方式与 76543 相关的所有帐户,即使是产品关系?
-
我认为您说的是“层次结构”而不是其他东西。请想一个更好的词来形容它。否则,问题清晰而详细;我们只是看不到您想要实现的目标。
-
为什么 45654242 没有出现在您的结果中?我认为没有理由将它们排除在外?是不是因为不是76543的孩子?
-
这只是数据的一个例子。作为输入,我有表 to_show 将包含我想要显示的帐户 ID(当然包括所有层次结构)。也许等级制度是一个坏词——全是“树”——我认为它更好; )
-
xQbert: 45654242 不能出现,因为作为输入我有 account: 34456 。并且帐户 34456 与 45654242 无关
标签: sql oracle hierarchical-query