2009-12-17 47 views
7

我有2個表,我需要從中獲取信息,並希望在單個查詢中獲取信息。MySQL - 與2個ID共用的2個表加入

的情況是這樣的:

table "matches" : 

id 
team_A_id 
team_B_id 

table "teams" : 

id 
name 

目的是檢索表「匹配」的信息(足球賽事),並攜手同臺「團隊」的信息。我需要這個,因爲我的web服務提供商沒有使用我的語言(葡萄牙語)的xml數據,所以我需要爲我的客戶提供將某些團隊名稱翻譯成葡萄牙語的選項,否則我會直接在「匹配」表。問題是我需要用2個id加入2個表格。我知道如何連接具有1個ID的表格,但無法弄清楚如何使用2個ID來完成,並且保持來自參與每場比賽的兩個團隊的信息完好無損。

這可能嗎?或者我必須創建單獨的查詢?

回答

9
select match.*, teama.name, teamb.name 
from matches as match 
inner join teams as teama on teama.id = match.team_A_id 
inner join teams as teamb on teamb.id = match.team_B_id 

將在SQL Server中工作,想必也是MySQL的。

+0

是的!這是我一直在尋找的年齡!謝謝 – Thavarith 2012-04-05 17:20:28

6

包括球隊表第二次(用不同的別名),並把查詢作爲三個表之間:

SELECT * 
FROM matches m 
JOIN teams t1 ON m.team_A_id = t1.id 
JOIN teams t2 ON m.team_B_id = t2.id 
3
SELECT * 
    FROM matches m, team t1, team t2 
WHERE m.team_A_id = t1.id 
    AND m.team_B_id = t2.id