2009-07-22 8 views
0

j'ai 2 tables comme ceci:
[jeux]
gameid
hometeamid
awayteamid
score de
MYSQL requêtes multiples id à la résolution de noms entre deux tables

et

[équipes]
teamid
teamname

Comment pourrais-je créer une requête pour afficher quelque chose comme:
[équipe locale] [l'équipe] [note]
49ers chargeurs 28-17

Voyez-vous, je dois résoudre 2 noms d'équipe avec 2 ids d'équipe dans la même table et ne produisent que les noms. Merci d'avance pour votre aide!

Répondre

0

Cela devrait fonctionner pour vous:

 
select t1.teamname, t2.teamname, g.score 
from games as g 
    left outer join team as home_team 
     on g.hometeamid = home_team.id 
    left outer join team as away_team 
     on g.awayteamid = away_team.id 
0
SELECT (SELECT teams.teamname FROM teams WHERE teams.teamid=games.awayteamid) AS awayteam,  
(SELECT teams.teamname FROM teams WHERE teams.teamid=games.hometeamId) AS hometeam, score 
FROM games 
WHERE gameid = '1' 
2
SELECT 
    ht.TeamName AS HomeTeam, 
    vt.TeamName AS AwayTeam, 
    g.Score 
FROM 
    games g INNER JOIN teams ht 
    on g.hometeamid = ht.teamid 
    INNER JOIN teams vt 
    on g.awayteamid = vt.teamid 

Je vous suggère de nommer les tables « jeu » et « équipe » - comme je ne suis pas fan de noms de tables au pluriel. Je ne suis pas seul dans cette opinion, mais c'est vraiment un style/préférence.

+0

je l'ai fait de cette façon très similaire SELECT t1.teamname, t2.teamname, partition des jeux, des équipes t1, t2 équipes OÙ games.hometeamid = t1.teamid ET games.awayteamid = t2.teamid –

Questions connexes