Bonsoir!
J'espère que vous allez toutes et tous très bien!
Pour illustrer mon problème je vais prendre un exemple fictif mais simple.
Le contexte:
Un site relatif à un sport. On y enregistre les pays, les équipes et les joueurs de ces équipes. On imagine donc la table "pays", la table "equipe" et la table "joueur"; la table "equipe" comporte un champ "pays" qui permet de lier à l'ID de la table "pays"; la table "joueur" comporte un champ "equipe" qui permet de lier à l'ID de la table "equipe".
La problématique:
Sur une page on souhaite afficher les 4 premièrs pays [par ordre d'ID croissant - "ORDER BY pays.id ASC"]; on imagine qu'une seule équipe est lié à chaques pays; et, pour chacunes de ces équipes on affiche un des joueurs aux hasard. On aura donc une requête dans ce genre:
Mes questions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT pays.nation,equipe.club,joueur.identite FROM pays LEFT JOIN equipe ON (pays.id=equipe.pays) LEFT JOIN joueur ON (equipe.id = joueur.equipe) GROUP BY equipe.id ORDER BY pays.id ASC,RAND()
La requête ci-dessus est fonctionnelle [cad sans erreur]... mais ça ne donne pas le résultat voulu. Le joueur affiché est toujours le même par équipe [cad un joueur différent pour chaques équipe, mais toujours le même pour une équipe donnée]. Une idée sur comment faire? Je sais appliquer le RAND() sur une seule table... mais là :s.
Merci d'avance pour vos aides!
Partager