Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2011, 14h25   #1
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
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 :
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
Type de fichier : png diagramme_base.png (56,1 Ko, 6 affichages)
Fichiers attachés
Type de fichier : sql gestion_productions.sql (10,3 Ko, 0 affichages)
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 14h38   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
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
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 14h40   #3
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

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

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
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)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 15h03   #4
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
Citation:
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...
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 15h06   #5
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

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

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
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)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 15h45   #6
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
Je vais voir ça. merci,
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h52.


 
 
 
 
Partenaires

Hébergement Web