2012-11-26 109 views
1

我有一個查詢,但我想另一個字段從另一個表添加到它...多個MySQL選擇

這是我現在使用的是什麼:

SELECT * 
FROM tournaments t , tournament_participants t1 
WHERE t.tournament_id = t1.tournament_id 
ORDER BY t1.tournament_id, t1.team_id; 

這工作得很好,但我也想從團隊表中使用team_id作爲此查詢的一部分獲取團隊名稱...

我不知道如何做到這一點,任何人都可以幫忙嗎?

+0

真的這取決於在表格的結構化方式上。查看你的查詢,我們如何看待內部使用了什麼樣的重新完整性? :)應該假設參與者表有一個引用taeam表的外鍵?提供表格模式和至少一些示例數據是一種很好的做法。 – bonCodigo

回答

0

只要加入:

SELECT * FROM tournaments AS t 
LEFT JOIN tournament_partecipants AS tp ON t.tournament_id = tp.tournament_id 
LEFT JOIN team ON tp.team_id = team.team_id 
ORDER BY tp.tournament_id, tp.team_id 
+0

這最後一個給我我想要的,謝謝... 其他人做,但這隻給我我想要的數據.. 幫助是非常感激,猜我現在要學習有關聯接:) 再次感謝所有評論。 – Staggan

0

試試這個:

SELECT t.*, t1.*, t2.name 
FROM tournaments t 
INNER JOIN tournament_participants t1 ON t.tournament_id = t1.tournament_id 
INNER JOIN teams t2 ON t1.team_id = t2.team_id 
ORDER BY t1.tournament_id, t1.team_id; 
+0

感謝您的建議..最後一個實際上給了我我想要的,剩下的只是更多的數據.. – Staggan

0

我不知道你有什麼樣的表架構。以下查詢基於很多假設。所以我可能錯了你真正需要的東西。請看看它。

查詢:

select p.pid, p.pname, t.id as teamID 
from participants p 
left join tournament tt 
on p.ttnid = tt.tnid 
inner join team t 
on tt.tnid = t.ttid 

結果:

PID  PNAME TEAMID 
1  john 10 
2  tim  10 
3  alex 20 
4  ron  20 
5  kate 30 

參考:SQLFIDDLE

請讓我們知道,如果你需要任何不同的解決方案或進一步澄清:)