2012-02-02 16 views
11

मैं एक टेबल से कई कॉलम में किसी अन्य तालिका से एक कॉलम में शामिल होने का तरीका सीखने की कोशिश कर रहा हूं।किसी तालिका से एक कॉलम से एक कॉलम में एकाधिक कॉलम में शामिल हों

यह अपने सरलतम रूप में मेरी मेज संरचना होती है:

टीमों

id | team_name | 
1 | teamA | 
2 | teamB | 
3 | teamC | 
4 | teamD | 

ट्रेडों

id | team_1 (FK to teams.id) | team_2 (FK to teams.id) | 
1 |   1    |    2   | 
2 |   3    |    4   | 

यह मेरे वर्तमान एसक्यूएल ही पूरी टीम को trades.team_1 मिलती है। आईडी:

SELECT teams.team_name AS team1, teams.team_name AS team2, trades.team_1, trades.team_2 
FROM teams 
JOIN trades ON (trades.team_1 = teams.id); 

मेरा सवाल यह है कि, मैं दूसरा जुड़ने कैसे बना सकता हूं जो trades.team_2 में ट्रेडों में शामिल हो जाता है।

यह दोनों trades.team_1 और trades.team_2 मतलब होगा trades.id को

परिणाम रहा होगा पर ध्यान लगाना चाहते शामिल हो जाएगा:

team1 | team2 | team_1 | team_2 | 
teamA | teamB | 1  |  2 | 
teamC | teamD | 3  |  4 | 

उत्तर

31

इस तरह:

select t1.team_name as team1, t2.team_name as team2, t.team_1, t.team_2 
from trades t 
inner join teams t1 on t1.id = t.team_1 
inner join teams t2 on t2.id = t.team_2; 
+3

भगवान, 10 सेकंड के अलावा और हम लानत एक ही जवाब के पास था। =) – Crontab

+0

हर कोई जो चट्टानों का जवाब देता है। गंभीरता से, आप में से प्रत्येक को इतनी जल्दी प्रतिक्रिया देने के लिए धन्यवाद। सभी उत्तर समान थे और सभी चाल चलेंगे। फिर से धन्यवाद दोस्तों! – Critter

+0

आपकी ज़रूरत के लिए धन्यवाद – spr

2

आप में शामिल होने की जरूरत है दो बार:

SELECT t1.team_name as team1, t2.team_name as team2, trades.team_t, trades.team_2 
FROM teams t1, teams t2, trades 
WHERE t1.id = trades.team_1 and t2.id = trades.team_2 
5

कोशिश टीमों तालिका फिर से शामिल होने का उपयोग कर, लेकिन दो अलग अलग उपनाम:

SELECT 
    teams1.team_name AS team1, 
    teams2.team_name AS team2, 
    trades.team_1, 
    trades.team_2 
FROM trades 
JOIN teams AS teams1 ON trades.team_1 = teams1.id 
JOIN teams AS teams2 ON trades.team_2 = teams2.id 
9
SELECT t1.team_name AS team1, t2.team_name AS t2, tr.team_1, tr.team_2 
FROM trades tr 
INNER JOIN teams t1 ON t1.id = tr.team_1 
INNER JOIN teams t2 ON t2.id = tr.team_2 
संबंधित मुद्दे