我正在尝试编写一个查询来显示项目的名称和父项目的名称,但到目前为止还没有提供正确的方法。
CREATE TABLE project
(p_id NUMBER(6),
project_name VARCHAR2(30),
client_id NUMBER(6),
mgr_id NUMBER(6),
parent_p_id NUMBER(6),
CONSTRAINT project_pid_pk PRIMARY KEY (p_id),
CONSTRAINT project_client_id_fk FOREIGN KEY (client_id) REFERENCES client(client_id),
CONSTRAINT project_mgr_id_fk FOREIGN KEY (mgr_id) REFERENCES consultant(c_id));
ALTER TABLE project
ADD CONSTRAINT project_parent_pid_fk FOREIGN KEY (parent_p_id) REFERENCES project(p_id);
通过使用:
SELECT project.p_id, project.project_name, project.parent_p_id
FROM project
WHERE project.parent_p_id IS NOT NULL;
我可以获得大部分信息,但我不知道如何将project.parent_p_id链接到project.project_name
有谁愿意帮帮我吗?!
提前致谢 :-)
您需要一个自连接,将 PROJECT 表连接到自身,如下所示
SELECT p.p_id,
p.project_name,
p.parent_p_id,
pp.project_name as parent_project
FROM project p
inner join project pp
on p.parent_p_id = pp.p_id;
如果您想要包含没有父项目的项目,那么连接将是 LEFT OUTER JOIN。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)