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

PHP & Base de données Discussion :

Requete de jointure mysql


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Requete de jointure mysql
    Bonjour,
    Je suis entrain de développer une interface de gestion de parc bouteille dans une entreprise qui produit du gaz (Oxygène - Acétylène) et je bloque sur une requête.
    En fait les bouteilles font des aller - retour suivant les ventes et les ramassages. Donc il me faut un suivi pour savoir si tel bouteille est "A l'usine, au dépôt ou chez le client".
    Voici la méthode que j'ai choisi:
    - Une table pour la liste des bouteilles
    Cette table contient les numeros et le statut de la bouteille (Usine, Depot ou Chez client)
    - Une table pour la liste des ventes
    Cette table contient les ventes, la date, le client et le numéro de bouteille

    Ce que je voudrais c'est d'afficher les bouteilles selon le statut de la bouteille (usine, Depot ou Chez client) à partir de la table des bouteilles.

    Merci de votre compréhension.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Puisque tu veux le statut qui est dans la table "bouteille" que vient faire la table "vente" dans l'histoire ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Requete de jointure mysql
    En fait je voudrais que le statut de la bouteille dans la table des ventes provient de la table des bouteilles

  4. #4
    Membre régulier
    Femme Profil pro
    Etudiante en informatique
    Inscrit en
    Janvier 2013
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante en informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 98
    Points : 95
    Points
    95
    Par défaut
    Ce n'est pas très clair. Quel résultat veux-tu obtenir exactement ?
    (Liste des colonnes)

  5. #5
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Requete de jointure mysql
    Ok je reprend
    Voici la structure de mes tables
    - Statut (Au depot, A l'usine ou bien chez le client)

    BOUTEILLES
    ID
    Numero_bouteille
    Capacite
    Date_mise_service
    Statut

    VENTES
    ID
    Date_vente
    Numéro_bouteille
    Client
    Statut

    Donc je voudrais au niveau de mes enregistrement des VENTES mettre le statut de la bouteille qui provient de la table BOUTEILLE et pouvoir les afficher. Ce qui me permettra de lister les bouteilles par statut sur les ventes afin de prevoir une ramassage car la bouteille ne doit pas faire plus de 30 jours chez le client. Donc la recherche ne peut se faire que sur les ventes.

  6. #6
    Membre régulier
    Femme Profil pro
    Etudiante en informatique
    Inscrit en
    Janvier 2013
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante en informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 98
    Points : 95
    Points
    95
    Par défaut
    C'est bien mieux

    Donc tu enlèves "Statut" de ta table vente.
    Et tu fais une jointure SQL.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT date_vente, VENTES.Numero_bouteille, Client, Statut, Date_mise_service
    FROM VENTES
         JOIN BOUTEILLES
            ON VENTES.Numero_bouteille = BOUTEILLES.Numero_bouteille
    (WHERE si besoin)
    Je ne sais pas si tu veux filtrer tes données, cette requête te retourne toutes les ventes (date, bouteille vendue, client) avec le statut et la date de mise en service de chaque bouteille.

  7. #7
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Requete de jointure mysql
    Merci les gars la requête s'exécute très bien mais ça met trop de temps à s'exécuter.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est combien "trop" ?

    Combien d'entrées contiennent tes 2 tables ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Requete de jointure mysql
    Ça met une vingtaine de seconde pour afficher une page qui doit contenir 50 enregistrements.

    Les deux tables doivent faire 10000 enregistrements
    La liste des bouteilles + Liste des ventes

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que Numero_bouteille est bien une clé primaire sur ta table bouteille ?

    Tu utilises LIMIT pour afficher les 50 éléments ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Requete de jointure mysql
    Je viens de vérifier effectivement la clé Primaire était sur ID

    Concernant l'affichage des enregistrements je les affiche par page que j'ai limité par 50 en PHP.

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est quoi ID par rapport à Numero_bouteille ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Requete de jointure mysql
    ID dans la table determine juste l'ID de l'enregistrement qui est en AUTO INCREMENT. Je peux avoir plusieurs vente d'une seule bouteille et cette ID me permet de les trier.

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La table "vente" doit contenir l'id de la bouteille qui est la clef primaire alors, pas son numéro.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Requete de jointure mysql
    Bonjour Sabotage,

    Je rouvre ce topique. Je voudrais améliorer une requête de jointure concernant le même projet.

    Voici mon problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM VENTES JOIN BOUTEILLES ON VENTES.Num_bouteille = BOUTEILLES.Bouteille WHERE Clients = '$nom_client' AND site='Chez client' ORDER BY date_sortie DESC
    Voici en image ce que ça me donne

    J'ai pris exemple sur la bouteille N°28511. On remarque que le 27/02/2013 on l'a loué à BABACAR NDIAYE/COLOBANE


    Sur cette image la bouteille n'est plus chez Babacar Ndiaye / Colobane mais plutôt chez MANSOUR DIA depuis le 20/12/2013.

    Voila je voudrais maintenant que quand je clique sur les détails de BABACAR NDIAYE / COLOBANE par exemple que la bouteille N°28511 ne figure plus sur la liste des bouteilles qu'il détient mais que celle ci figure sur MANSOUR DIA/KAOLACK.

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu te casserais moins la tête si tu stockais directement le dernier client dans la table bouteille.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [MySQL-5.1] Requete sur jointure en MySQL
    Par olibara dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/03/2014, 10h18
  2. [MySQL] Erreur dans une requête avec jointures
    Par bobic dans le forum Langage SQL
    Réponses: 17
    Dernier message: 03/08/2006, 14h04
  3. [Jointure] MySQL - Exemple
    Par Stef.web dans le forum Langage SQL
    Réponses: 2
    Dernier message: 22/10/2004, 21h41
  4. requete avec jointure & group by
    Par de LANFRANCHI dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/07/2004, 15h31
  5. requete AVG, jointure et fonction
    Par slim dans le forum Langage SQL
    Réponses: 11
    Dernier message: 01/04/2004, 02h45

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