2011-10-10 47 views
0

我在我的數據庫中有一個表稱爲字符。它跟蹤角色ID,姓名,已婚,和父親ID。 「marriedto」是他們與之結婚的人物的人物ID,「父親ID」是該人物父親的人物ID。SQL連接,3x本身?

我想在SQL中做一個連接語句,它將拉出所有三個名字。 所以我的表可能是這樣的:

CharID CharName marriedto fatherID 
1  Jeremy 2   3 
2  Sarah 1   4 
3  Charles 5   6 

我想運行一個查詢,沿着這些線路

Jeremy, Sarah, Charles 

返回的東西我能得到自己一個加盟的事情發生,如果我想讓它給我只有兩個名字,但三個逃避我。

這工作了兩個..

"SELECT C1.name AS spouse1, C2.name AS spouse2 
     FROM characters AS C1 
      JOIN characters AS C2 
       ON C1.marriedto= C2.characters_ID"; 

而且我已經嘗試此三個,但它不工作。

"SELECT C1.name AS spouse1, C2.name AS spouse2 C3.name AS father 
     FROM characters AS C1 
      JOIN characters AS C2 
       ON C1.marriedto= C2.characters_ID 
      LEFT JOIN characters AS C3 
       ON C1.fathersID = C3.characters_ID" 

我該如何做這個三連接只有一個表?

+1

你試過的查詢怎麼樣都行不通?您是否收到錯誤訊息?您的三連接查詢示例至少有一個語法錯誤,我可以看到 - 「AS spouse2」後面缺少逗號。此外,查詢與您的數據模型列名稱不匹配,但這可能不是或可能不是您問題的一部分 –

+0

這看起來像是一個奇怪的WHERE條件 – Paul

回答

0

您的查詢結果很好..我只能看到在spouse2C3.name之間缺失的逗號。

+0

geez,總是很簡單。謝謝! – jeremy