Poppy Posté 4 Septembre 2005 Partager Posté 4 Septembre 2005 Bonjour, Voici les schéma de mes tables : La (ma ?) difficulté, c'est d'afficher la liste des élèves avec leurs groupes. mysql_query("SELECT * FROM `eleves` WHERE 1 ORDER BY `nom` ASC, `groupe` ASC") Le problème avec cette requête que je n'ai que l'id du groupe et qu'il faudrait que j'aille le chercher dans la seconde table. Pourriez vous me dire la bonne requête, merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
KaRaK Posté 4 Septembre 2005 Partager Posté 4 Septembre 2005 Kikou Il faut que tu agisses sur les deux tables. FROM eleves, groupe Et que tu fasses une jointure WHERE eleves.groupe=groupe.id Je prefere ne pas te donner la bonne requete, tu n'amuseras plus à la faire par toi meme je pense. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Poppy Posté 4 Septembre 2005 Auteur Partager Posté 4 Septembre 2005 Je pensais bien que c'était un truc du style, mais chaque table a un champ 'groupe', donc difficile de les distinguer apèrs l'envoi de la requête. Mais l'un, c'est l'id du groupe et l'autre son nom. Le mieux à faire, c'est de changer le nom du champ 'groupe' de la table 'eleve' par 'id_groupe' peut-être ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
KaRaK Posté 4 Septembre 2005 Partager Posté 4 Septembre 2005 (modifié) Si tu y vois plus clair en changeant le non de tes champs oui Perso je l'appellerai id_groupe comme tu le proposes. Modifié 4 Septembre 2005 par KaRaK Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 4 Septembre 2005 Partager Posté 4 Septembre 2005 Tu peux très bien laisser la base comme ceci, mais appeler les champs différemment, juste pour la requète : SELECT nom_table.nom_champ as nouveau_nom etc.. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Poppy Posté 4 Septembre 2005 Auteur Partager Posté 4 Septembre 2005 Tu peux très bien laisser la base comme ceci, mais appeler les champs différemment, juste pour la requète : SELECT nom_table.nom_champ as nouveau_nom etc.. <{POST_SNAPBACK}> Je pense que je vais changer le nom du champ, mais merci ta technique. Je m'en servirai sous peu Lien vers le commentaire Partager sur d’autres sites More sharing options...
e.MiLoU Posté 4 Septembre 2005 Partager Posté 4 Septembre 2005 (modifié) [HS] Pour alléger la lecture de ta requête, et l'écriture aussi, tu peux utiliser des abréviations pour tes bases. Genre SELECT nv.nom as nouveau_nom, ac.nom as acien_nom FROM ma_base_qui_attend_d_etre_update as, ma_bas_qui_est_update nv J'espère que tu as compris ce que je vouslais dire... [/HS] Modifié 4 Septembre 2005 par e.MiLoU Lien vers le commentaire Partager sur d’autres sites More sharing options...
Poppy Posté 4 Septembre 2005 Auteur Partager Posté 4 Septembre 2005 Finalement, la solution d'Anonymus est excellente Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 5 Septembre 2005 Partager Posté 5 Septembre 2005 (modifié) Juste une chose : Essaie d'utiliser des inner join au lieu de jointure externes : Select eleves.id, eleves.nom, groupe.id, groupe.nom from eleves inner join groupe on eleves.groupe = groupe.id Tu devrais aussi rajouter un index sur 'id' de 'groupe'. Portekoi Modifié 5 Septembre 2005 par portekoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant