IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Requete mysql : select sur deux tables [Fait]


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Points : 494
    Points
    494
    Par défaut Requete mysql : select sur deux tables
    Bonjour !

    Alors voila, je sais bien utilisé mysql pour tout ce qui est des requetes de base par contre j'ai pas trop d'idée pour les requetes avancé et notamment une en particulier. N'ayant pas trouvé mon bonheur dans la faq/source/ cours je m'en remet a vous !

    Ce que j'ai actuellement :

    Une table 'monstre' dans lequel j'ai un champs int : 'id_race' qui correspond a l'id d'une table 'race' qui contient notamment le nom de la race.

    Actuellement je lance une recherche pour avoir les monstres puis pour chaque resultat une autre pour avoir le nom de la race ... Conscient que c'est pas super , j'aimerais savoir si je pouvais le faire avec une seul requete ?

    Merci d'avance !

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select * 
    from monstre
    join race
    on monstre.id_race = race.id
    ?
    SQL : Les jointures, ou comment interroger plusieurs tables

  3. #3
    Membre confirmé Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Points : 494
    Points
    494
    Par défaut
    Merci beaucoup ! j'avais pas vu !

  4. #4
    Membre confirmé Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Points : 494
    Points
    494
    Par défaut
    Alors, sa marche tres bien et le tuto est complet mais je trouve pas dedans comment ne pas faire un select *sur la jointure , j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * 
    FROM monstre
    JOIN monstre_race nom ON monstre.race = monstre_race.id
    mais du coup il reconnait plus l'id :/

    Autre question en rapport avec le sujet au niveau du traitement php en utilisant $monstre = mysql_fletch_result($result); comment récupéré le nom du monstre et le nom de la race qui me semble porté le meme nom de colonne du coup ?

    Merci d'avance !

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu peux utiliser des alias pour les champs qui portent le même nom dans les deux tables sans pour autant avoir la même valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT monstre.nom as nom_monstre, monstre_race.nom as nom_race
    FROM monstre
    JOIN monstre_race nom ON monstre.race = monstre_race.id

  6. #6
    Membre confirmé Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Points : 494
    Points
    494
    Par défaut
    Merci pour cette réponse !

  7. #7
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    de plus, il est conseillé d'éviter le * et plutôt nommer les colonnes

  8. #8
    Membre confirmé Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Points : 494
    Points
    494
    Par défaut
    En l'occurence j'avais besoin de toute les colonnes de monstre ^^

    Par contre la requete si quelqu'un utilise ce post c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT monstre.nom AS nom_monstre, monstre_race.nom AS nom_race
    FROM monstre
    JOIN monstre_race ON monstre.race = monstre_race.id
    avec nom en moins donc !

    Merci a tout les deux pour toute les explication !

  9. #9
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    Citation Envoyé par IP-Fix Voir le message
    En l'occurence j'avais besoin de toute les colonnes de monstre ^^
    en fait, même si tu as besoin de toutes les colonnes, l'étoile est à éviter. C'est mieux niveau perf (voir la partie 9 de cet article : http://sqlpro.developpez.com/cours/optimiser/#L4) et en plus c'est super utile quand tu requêtes sur plusieurs tables

  10. #10
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Dans le même esprit tu peux aussi lire ce billet de Fred (Frédéric Bouchery, l'homme au furet) : La guerre des étoiles.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Select sur deux tables, résultat formaté
    Par Warluck dans le forum PL/SQL
    Réponses: 2
    Dernier message: 04/12/2008, 19h45
  2. [MySQL] Select sur plusieurs tables jointes
    Par cariboo45 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 27/09/2008, 15h10
  3. requete sql selection dans deux tables
    Par dede64 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/03/2008, 14h50
  4. SELECT sur deux tables
    Par Gaetch dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/07/2007, 15h40
  5. Select sur deux tables
    Par DJuL- dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/03/2007, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo