2014-01-11 56 views
0

我無法查詢以下內容;制定選擇查詢

的tablename =帳戶

名稱| AccountCode | ParentAccountCode

John | A1 | NULL

Filip | A2 | A1

我想單個查詢來選擇2列

第一列=名稱
第二列= ParentAccountName(自定義)

的ParentAccountName柱填充有表示所述名稱它是代碼。

所以菲利普有ParentAccountCode A1,這是約翰,所以在自定義列ParentAccountName值應爲「約翰」

它應該是這樣的

我得到這樣說:

> SELECT A.Name, AA.Name AS ParentAccountName FROM Account AS A 
>  INNER JOIN Account AS AA 
>  ON A.ParentAccountNumber = AA.AccountNumber WHERE A.AccountNumber = 'A2' 

哪一個導致ParentAccountName = John。 所以這很好,但是當選擇AccountNumber = A1時,它不會顯示結果。

即使ParentAccountName = null,我如何讓SQL給我一個結果集?

回答

0

也許你需要做自連接:

SELECT T1.Name, T2.Name AS ParentAccountName 
FROM Account T1 INNER JOIN Account T2 ON (T2.Account = T1.ParentAccountCode) 
1

你需要一個左外連接,而不是內部的加入。

SELECT A.Name, AA.Name AS ParentAccountName FROM Account AS A 
LEFT OUTER JOIN Account AS AA 
ON A.ParentAccountNumber = AA.AccountNumber 
+0

是!這個竅門! 非常感謝mscoon併爲我的noobness抱歉... :) –