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 difficile multi table avec multi champ


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2011
    Messages : 42
    Par défaut Requete difficile multi table avec multi champ
    Bonjour,
    Tout d'abord je vous montre les tables et ensuite je vous explique un peu le contexte ainsi que ma question.

    Voici ma table PLAT


    Cette table contient toute sorte de plat comme des entrées (salade,tomate,concombre) mais aussi des desserts ou des plats de résistance.

    Voici ma table MENU



    Cette table contient la composition d'un menu complet ce qui veut dire une entré, un plat, un dessert cependant pour des raisons de stockage je souhaite enregistrer que des id de plat dans cette table donc jusque la tous va bien .

    Voici le résultat affiché



    Voila ma question :
    Comment puis je faire pour remplacer l'affichage des id par le nom de mes plats?


    Ah oui j'allais oublié voici une image de mes clés primaires et étrangères.




    Voila cela fait une semaine que je recherche la solution mais sans sucés car effectivement j'arrive bien à faire une jointure pour un champ mais pas pour tous .

    Merci d'avance à tous et bonne journée !!

    Cordialement
    J.LEGRAND

  2. #2
    Membre éclairé Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Par défaut
    Bonjour, un truc vite fait pour donner une idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT mes_colonnes
    FROM MENU menu
    INNER JOIN PLAT entree ON entree.id_plat = menu.id_entree
    INNER JOIN PLAT resistance ON resistance.id_plat = menu.id_platresistance
    INNER JOIN PLAT desser ON desser.id_plat = menu.id_dessert
    Il suffit de récupérer les noms des plats dans le select et ça devrait gagner !
    @+

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2011
    Messages : 42
    Par défaut
    Re,
    Tout d'abbord merci pour ta réponse j'ai essayé ta méthode cependant elle me retourne beaucoup trop de résultat et cela est irrécupérable en PHP car elle me fait des doublons de champ.

    J'apporte un renseignement en gros il faudrait que j'execute ces requetes la pour l'affichage de chacune de mes ligne de ma table menu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT p.nom_plat FROM plat p, menu m WHERE m.entre1_menu = p.id_plat;
    SELECT p.nom_plat FROM plat p, menu m WHERE m.plat1_menu = p.id_plat;
    SELECT p.nom_plat FROM plat p, menu m WHERE m.dessert1_menu = p.id_plat;
    SELECT p.nom_plat FROM plat p, menu m WHERE m.prix1_menu = p.id_plat;
    Ce qui rendrait mon script vraiment trop long !!

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,

    Tout d'abbord merci pour ta réponse j'ai essayé ta méthode cependant elle me retourne beaucoup trop de résultat et cela est irrécupérable en PHP car elle me fait des doublons de champ.
    Postez la requête que vous avez essayé

  5. #5
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2011
    Messages : 42
    Par défaut
    Voici la requête modifier pour fonctionné avec mes tables et les champs correspondant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT *
    FROM MENU menu
    INNER JOIN PLAT entree ON entree.id_plat = menu.entre1_menu
    INNER JOIN PLAT entree2 ON entree.id_plat = menu.entre2_menu
    INNER JOIN PLAT resistance ON resistance.id_plat = menu.plat1_menu
    INNER JOIN PLAT resistance2 ON resistance.id_plat = menu.plat2_menu
    INNER JOIN PLAT desser ON desser.id_plat = menu.dessert1_menu
    INNER JOIN PLAT desser2 ON desser.id_plat = menu.dessert2_menu
    INNER JOIN PLAT prix ON desser.id_plat = menu.prix1_menu
    INNER JOIN PLAT prix2 ON desser.id_plat = menu.prix2_menu

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    La requête n'est pas ok.

    Vous avez des problèmes avec l'utilisation de vos alias => ca fait des jointures cartésiennes dans tous les sens.

Discussions similaires

  1. [MySQL] Requete SELECT multi-tables avec un ORDER BY
    Par Twenty4 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/12/2010, 02h36
  2. Requete multi tables avec champs vides
    Par zezette31 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 02/04/2008, 17h57
  3. Requete multi table avec LIMIT et ORDER BY
    Par yobogs dans le forum Requêtes
    Réponses: 1
    Dernier message: 31/10/2006, 17h29
  4. [MySQL] Requete sur 2 tables avec champs commun
    Par marcd dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/04/2006, 16h14
  5. Sélection multi table avec condition
    Par iuz dans le forum Langage SQL
    Réponses: 8
    Dernier message: 05/05/2004, 15h04

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