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 :

Correction de requête


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Points : 92
    Points
    92
    Par défaut Correction de requête
    Bonjour,

    Avant toute chose, je présente le contexte : des formateurs proposent chaque semaines une série de produits qui seront mis en vente au restant du personnel, via des fiches produits.
    Dans une même semaine, une personne peut créer deux fiches produit pour un même produit. Pour être plus concret, je donne un exemple (sur lequel je butte aussi dans le développement) :
    Baguettes 6 déc et baguettes 8 déc. Le produit pour ces deux fiches est le même, c’est la baguette (et donc le même ID)
    Maintenant, je suis client et je commande 1 baguette à partir de la fiche ‘Baguettes 6 déc’ uniquement. Dans mon panier, je verrai apparaître à l’affichage ma commande pour le 6 décembre, mais aussi, et c’est là que se situe le problème, une commande pour le 8 décembre. Parce que c’est le même produit…
    Tous les éléments nécessaires sont en pièces jointes.
    La requête qui pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT lg_cmd.lg_commandes_id_commande, lg_cmd.qt_lg_cmd, lg_cmd.remarque, 
    lg_cmd.montant, prod.nom, fiche.date_dispo, famille.prix, fiche.qt_prod_now  
    FROM lg_commandes AS lg_cmd
    INNER JOIN produits AS prod ON prod.id_pdts = lg_cmd.produits_id_pdts
    INNER JOIN fiche_production AS fiche ON fiche.produits_id_pdts = prod.id_pdts
    INNER JOIN famille_prix AS famille ON famille.id_fp = prod.famille_prix_id_fp
    WHERE lg_cmd.lg_commandes_id_commande IN (
    SELECT cmd.id_commande
    FROM commandes AS cmd
    WHERE cmd.clients_id_client =  :id_client
    AND CURRENT_DATE() < fiche.date_dispo)
    Comment puis-je distinguer une commande sur un même produit ?
    Merci,
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

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

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

    Je n'arrive pas à voir la relation entre votre demande et la requête postée ?

    vu que votre requête actuel vosu retourne déjà les différents couple commande / produit

  3. #3
    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,
    En fait, je pense qu'il y a une erreur dans ta modélisation :
    la liaison entre lg_commandes et produits gagnerait à être remplacée par une liaison entre lg_commandes et fiche_production.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Points : 92
    Points
    92
    Par défaut
    la liaison entre lg_commandes et produits gagnerait à être remplacée par une liaison entre lg_commandes et fiche_production.
    J'y ai pensé à vrai dire. Mais j'aurais besoin malgré tout de l'id produit pour récupérer notamment le champ famille.prix...

  5. #5
    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
    Et alors ?
    Une jointure entre fiche_production et produit puis entre produit et famille et le tour est joué.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Points : 92
    Points
    92
    Par défaut
    Je vais voir ça. merci,

Discussions similaires

  1. Correction de requête
    Par yann18 dans le forum Requêtes
    Réponses: 6
    Dernier message: 21/06/2010, 14h09
  2. comment trier correctement mes requêtes ?
    Par isodoro dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/03/2009, 16h12
  3. Comment rendre correcte cette requête ?
    Par Seb981 dans le forum Langage SQL
    Réponses: 19
    Dernier message: 27/06/2007, 07h34
  4. Réponses: 2
    Dernier message: 23/07/2006, 15h07
  5. Correction de requête SVP
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/01/2006, 13h32

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