2015-10-15 45 views
0

我有表像下面一個 -我如何加入同一個表並在SQL中進行排序?

Name  Null  Type   
--------- -------- ------------ 
ID  NOT NULL NUMBER  
Name    VARCHAR2(20) 
PARENT_ID   NUMBER 

表內容

ID  Name  PARENT_ID 
--------- -------- ------------ 
1   Ramesh null* 
2   Ajay  1 

我想找出最好的SQL連接查詢在那裏我可以填充像下面的結果。

對於每一行我想知道ParentName不是ID。我怎樣才能做到這一點 ?

ID  Name  ParentName 
--------- -------- ------------ 
1   Ramesh null* 
2   Ajay  Ramesh 

*空或空白

這不是例子的我的要求。

我已經嘗試了下面的SQL與左連接,但我不知道它是否正確的方式。

SELECT S1.ID,S1.CRID AS PARENT_CRID,S2.CRID AS CRID FROM DAJ_JOINS S1 
left JOIN DAJ_JOINS S2 
ON S1.ID=S2.PARENT_ID 
order by id asc; 
+0

MySQL或MS SQL服務器? (不要標籤產品不涉及...) – jarlh

+0

@ShaminderSAujla,你怎麼知道?它同時具有MySQL和SQL Server標籤... – jarlh

+0

您是否需要找到一位父母或所有父母? – vhu

回答

1

您所查詢的是接近,但加盟條款必須予以扭轉爲

select 
t1.ID, 
t1.Name, 
t2.Name as PARENT_Name 
from DAJ_JOINS t1 
left join DAJ_JOINS t2 on t1.PARENT_ID = t2.ID 
order by t1.ID 
+0

謝謝!它的工作 – irobo

0

有了SQL Server 2005 +,你可以嘗試:

SELECT * 
FROM DAJ_JOINS D 
    OUTER APPLY (SELECT Name As Parent_Name FROM DAJ_JOINS WHERE ID = D.Parent_ID) A 
相關問題