2012-06-23 7 views
0

J'ai du mal à comprendre comment extraire des données de MySQL. Réponse peut être simple, mais je suis coincé, et ne peut pas trouver de l'aide sur internet ...Récupération de données MySQL

J'ai trois tables, disons que la première table est nommée série, deuxième est des équipes et des jeux troisième id. structure de table est quelque chose comme ceci:

series: 
id 
name 

teams: 
id 
name 

games: 
series_id (relates to series.id) 
hometeam_id (relates to teams.id) 
visitorteam_id (relates to teams.id) 

Donc mon problème est de récupérer les lignes de jeux, où les id doivent être là les noms, pas id ...

Result should be something like this: 
"championship 
wolverines 
marines" 

not like 
"1 
45 
142" 

Actuellement, je suis aller chercher ces séries et équipes tables à hashref (en perl) et en prenant des ID à partir de là. Mais il doit y avoir un moyen plus efficace de le faire dans une requête SQL au lieu de trois.

+0

@sgmart En général, les sports ont 2 équipes qui jouent les uns contre les autres: P – Russ

Répondre

1

Vous devez joindre à la table des équipes deux fois (une fois pour l'équipe à domicile, la deuxième fois pour les visiteurs)

SELECT g.*,h.name as hometeam_name,v.name as visitorteam_name FROM games g 
    INNER JOIN series s ON g.series_id=s.id 
    INNER JOIN teams h ON g.hometeam_id=h.id 
    INNER JOIN teams v ON g.visitorteam_id=v.id 
+0

me damer le pion, était va écrire une déclaration SQL comme ça (+1) cependant. Aussi pour l'OP, je suggère de regarder http://www.w3schools.com/sql/default.asp – Russ

Questions connexes