Problème de requête SQL

Petit nouveau ! | 5 Messages

26 juin 2012, 00:19

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

ViPHP
ViPHP | 2577 Messages

26 juin 2012, 09:03

Il faut faire 2 joints sur equipe en utilisant equipe e1 l'autre equipe e2. Les colonnes sont alors à renommer e1.nom as nom1...

Petit nouveau ! | 5 Messages

26 juin 2012, 09:27

Merci pour ta réponse, donc si je comprends bien il me faut 2 requêtes ou je peux le faire en 1 seule??

ViPHP
xTG
ViPHP | 7331 Messages

26 juin 2012, 09:38

Non deux jointures dans ta requête. :P

Petit nouveau ! | 5 Messages

26 juin 2012, 09:44

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

Eléphant du PHP | 127 Messages

26 juin 2012, 09:59

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

Petit nouveau ! | 5 Messages

26 juin 2012, 10:03

Effectivement!
Cool =D>

ViPHP
ViPHP | 2577 Messages

26 juin 2012, 11:06

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)

Petit nouveau ! | 5 Messages

28 juin 2012, 14:33

Effectivement, en tout cas ça fonctionne parfaitement. Encore merci :) =D>