2009-12-17 9 views
7

Ich habe 2 Tabellen, die ich brauche, um Informationen zu erhalten, und möchte die Informationen in einer einzigen Abfrage erhalten.MySQL - JOIN 2 Tabellen mit 2 IDs gemeinsam

Die Situation ist folgende:

table "matches" : 

id 
team_A_id 
team_B_id 

table "teams" : 

id 
name 

Das Ziel ist es, Informationen aus der Tabelle „matches“ abgerufen werden (Fußballspiele) und die Informationen mit der Tabelle „Teams“ beizutreten. Ich brauche das, weil mein Webservice - Provider die XML - Daten nicht in meiner Sprache (Portugiesisch) hat, und deshalb muss ich meinem Kunden die Option anbieten, bestimmte Teamnamen ins Portugiesische zu übersetzen, sonst würde ich die Teamnamen direkt auf dem Server hinzufügen "passt" -Tabelle. Das Problem ist, dass ich die 2 Tabellen mit 2 IDs verbinden muss. Ich weiß, wie man Tabellen mit 1 ID gemeinsam verbindet, aber ich kann nicht herausfinden, wie man es mit 2 IDs macht und die Informationen von den 2 Teams, die in jedem Spiel involviert sind, intakt hält.

Ist das möglich? Oder muss ich separate Abfragen erstellen?

Antwort

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 

würde in SQL Server arbeiten und vermutlich zu MySQL.

+0

Ja! Das ist, was ich seit Jahren gesucht habe! Vielen Dank – Thavarith

6

umfassen die Tabelle Teams ein zweites Mal (mit einem anderen Alias) und die Abfrage als zwischen drei Tabellen behandeln:

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