2017-11-12 20 views
0

プロジェクトの名前と親プロジェクトの名前を表示するためのクエリを作成しようとしていますが、それまでのところ適切な方法ではありません。使用することにより子+親参照SQL

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.project_nameにproject.parent_p_idをリンクする方法がわかりません私を助けてください!あなたはその後、親プロジェクトを持っていないプロジェクトを含めたい場合は、この

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; 

のようにそれ自体にPROJECT表を結合し、自己の参加を必要とする

答えて

1

:-)事前に

感謝結合はLEFT OUTER JOINになります。

+0

迅速な回答ありがとうございます! :-) –

関連する問題