Page 1 sur 1

Problème de requête SQL

Posté : 26 juin 2012, 00:19
par gbforweb
Bonjour à tous,
je bosse en ce moment sur une application de gestions de matchs. J'ai un petit soucis j'ai une table MATCHS ( match_id,equipe1,equipe2,scoreTeam1,scoreTeam2) liée à une table Equipe avec les ids, nom, infos des équipes. J'aimerais faire une requête afin d'afficher la liste des matchs et bien sur afficher le nom des équipes.
Je suis bloqué à ce niveau:
$query = "SELECT * 
FROM `MATCH`
LEFT JOIN `EQUIPE`
ON `MATCH`.`equipe1` = `EQUIPE`.`id_EQUIPE` ...
";
bien sur je voudrais un affichage de la sorte

Equipe1 5 - 0 Equipe 2
Equipe1 2 - 0 Equipe 3
Equipe2 2 - 3 Equipe 3

Pouvez vous m'aider ??

Merci d'avance

Re: Problème de requête SQL

Posté : 26 juin 2012, 09:03
par Mazarini
Il faut faire 2 joints sur equipe en utilisant equipe e1 l'autre equipe e2. Les colonnes sont alors à renommer e1.nom as nom1...

Re: Problème de requête SQL

Posté : 26 juin 2012, 09:27
par gbforweb
Merci pour ta réponse, donc si je comprends bien il me faut 2 requêtes ou je peux le faire en 1 seule??

Re: Problème de requête SQL

Posté : 26 juin 2012, 09:38
par xTG
Non deux jointures dans ta requête. :P

Re: Problème de requête SQL

Posté : 26 juin 2012, 09:44
par gbforweb
Ahhhhh cool je crois que j'ai compris il me faut un truc du genre :
SELECT CONCAT(t2.nom,' ', scoreTeam1, ' - ',scoreTeam2, ' ',t3.nom)
FROM MATCHS LEFT JOIN EQUIPE AS t2 ON MATCHS.equipe1=t2.id LEFT JOIN EQUIPE AS t3 ON MATCHS.equipe2=t3.id
ça marche!!!

Encore merci

Re: Problème de requête SQL

Posté : 26 juin 2012, 09:59
par nhachet
Bonjour,

n'oublie pas les IFNULL dans ton CONCAT car CONCAT() renverra NULL s'il détecte au moins une valeur NULL. ;)
Ex :
SELECT CONCAT(IFNULL(t2.nom, ''),' ', IFNULL(scoreTeam1, ''), ' - ', IFNULL(scoreTeam2, ''), ' ', IFNULL(t3.nom, ''))
FROM MATCHS 
LEFT JOIN EQUIPE AS t2 ON MATCHS.equipe1=t2.id 
LEFT JOIN EQUIPE AS t3 ON MATCHS.equipe2=t3.id

Re: Problème de requête SQL

Posté : 26 juin 2012, 10:03
par gbforweb
Effectivement!
Cool =D>

Re: Problème de requête SQL

Posté : 26 juin 2012, 11:06
par Mazarini
SELECT t1.nom as nom1, scoreTeam1, scoreTeam2,t2.nom as nom2 FROM MATCHS 
LEFT JOIN EQUIPE AS t1 ON MATCHS.equipe1=t1.id 
LEFT JOIN EQUIPE AS t2 ON MATCHS.equipe2=t2.id
En général, on récupère les colonnes et on fait la présentation via PHP. De même j'aurai utilisé t1 et t2 plutôt t2 et t3 (voir e1,e2 : "e" comme équipe)

Re: Problème de requête SQL

Posté : 28 juin 2012, 14:33
par gbforweb
Effectivement, en tout cas ça fonctionne parfaitement. Encore merci :) =D>