2013-11-21 99 views
0

表A在SQL INNER用兩柱JOIN

AID  AName 
1  Alpha 
2  Bravo 
3  Charlie 

表B

BID  BName 
1  Delta 
2  Echo 
3  Foxtrot 

表C

CID  AID  BID 
1  1  null 
2  null 2 
3  3  null 

我使用下面的SQL語句:

SELECT C.CID, A.Name AS First, B.Name AS Second FROM TableC 
INNER JOIN TableA ON TableC.AID = TableA.AID 
INNER JOIN TableB ON TableC.BID = TableB.BID 

但顯示空白記錄。預期結果應該是:

CID  First  Second 
1  Alpha 
2     Echo 
3  Charlie 

有什麼建議嗎?

回答

3

使用LEFT JOIN而不是INNER JOIN

+0

哦。這是一個新人的錯誤。謝謝! – abramlimpin

1

你想要的是FULL OUTER JOINUNION

UPDATE: 看一次你的表...使用LEFT JOIN每個A,B表

SELECT C.CID, A.AName, B.BName 
FROM C 
LEFT JOIN A ON C.AID = A.AID 
LEFT JOIN B ON C.BID = B.BID 
1

SELECT C.CID,經過A.名稱爲第一個,B.Name爲第二 FROM表C LEFT JOIN表A ON TableC.AID = TableA.AID LEFT JOIN表B ON TableC.BID = TableB.BID