2011-08-07 89 views
0

我一直在爲這個問題奮鬥了3個小時。我知道我可以通過將數據放在兩個不同的表中來解決問題,但由於數據是內在鏈接的,因此它會擊敗對象,我知道答案會很簡單,但已經嘗試了所有方法來使它在遵循大量鏈接/示例的情況下工作,但發現很難理解這個例子與我的問題有何關係。在SELECT語句中從一個表中加入單獨的列

這不是實際的SQL,但會說明我正在嘗試做什麼這是一個mySQL數據庫。

playerName = Johan Djourou 
nationality = Côte d'Ivoire 
playsFor = Switzerland 

tbl_Soccer_Player 
playerID, 
playerName, 
nationalityID, 
playsForID, 
CONSTRAINT fk1 FOREIGN KEY (nationalityID) REFERENCES tbl_nationality(notionalityID), 
CONSTRAINT fk2 FOREIGN KEY (playsForID) references tbl_nationality(notionalityID) 

tbl_nationality 
nationalityID 
nationality // french, spanish, belgian 
country // france, spain, belgium 

SELECT playerName, nationality, country FROM tbl_Soccer_Player 
JOIN tbl_nationality ON tbl_Soccer_Player.nationalityID = tbl_nationality.nationalityID 

...現在如何加入縣,當他們是從同一張桌子?

很多感謝, 馬克

PS。我曾經通過使用Microsoft Access GUI查詢生成器將查詢集中在一起,但現在在Linux Ubuntu上工作來解決這類問題。我會尋找一個基於Linux的應用程序來做到這一點,但有沒有人知道一個很好的使用?

+0

什麼,你可以嘗試做的是第二個在同一個表連接(別名可能會是必要的),就像你會用不同的表格。編輯:查看Guffa的答案瞭解詳情。 –

+0

至於用於Linux的MySQL前端,請看下面的內容:http://dev.mysql.com/downloads/workbench/ –

回答

2

你與同桌另一加入,使用別名來區分它們:

SELECT playerName, n.nationality, p.country 
FROM tbl_Soccer_Player 
JOIN tbl_nationality as n ON tbl_Soccer_Player.nationalityID = n.nationalityID 
JOIN tbl_nationality as p ON tbl_Soccer_Player.playsForID = p.nationalityID 
+0

非常感謝您的支持!我會記住它爲未來的項目。我試着圍繞同一個概念,但不能把它放在一起。 –

相關問題