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

Langage SQL Discussion :

jointure plusieurs tables


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 191
    Points : 82
    Points
    82
    Par défaut jointure plusieurs tables
    salut tout le monde

    j'ai fait une jointure de plusieurs tables :

    commandes
    detail_commande
    produits
    famille
    categorie


    et je veux afficher tous les lignes de categorie même que les autres sont nulles
    ( peut etre se fait par left join : mais cela ce fait par la jointure de deux tables et je sai pas comment le faire par la jointure de plusieurs tables )

    et merci d'avance , aidez moi svp c'est urgent

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Sans description de vos tables ou au moins un début de requête qui nous permettrait de voir les associations entre les tables, il va être impossible de vous aider.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 191
    Points : 82
    Points
    82
    Par défaut
    voila la requete :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT * 
    FROM commandes com , detail_commande det , produits prd , categorie cat , famille_article fam  
    WHERE  com.Id_com =det.Id_com  
      AND det.id_art_com = prd.id_prod  
      AND prd.Id_cat  = cat.Id_cat  
      AND prd.Id_fam=fam.Id_fam  
      AND prd.Id_fam ='idfam' 
      AND com.Date_com    BETWEEN date1 AND  date2

  4. #4
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Si je comprends bien, vous voulez afficher toutes les catégories, même quand il n'y a pas d'articles entrant dans le détail des commandes ?

    Utilisons l'écriture normalisée pour les jointures, ce sera plus lisible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT *
    FROM categorie cat
    LEFT JOIN produits prd ON cat.Id_cat = prd.Id_cat
      INNER JOIN famille fam ON prd.Id_fam = fam.Id_fam
      INNER JOIN detail_commande det ON prd.id_prod = det.id_art_com
        INNER JOIN commandes com ON det.Id_com = com.Id_com
    WHERE prd.Id_fam = idfam
      AND com.Date_com BETWEEN date1 AND date2
    Quelques remarques :
    - Id_fam devrait être de type entier donc pas de idfam entre quotes ;
    - La requête va vous afficher toutes les catégories alors que vous sélectionnez un seul produit qui, si j'ai bien compris, n'a qu'une seule catégorie ! Est-ce vraiment utile ? Ou y a t-il une erreur de conception de la requête ?

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 191
    Points : 82
    Points
    82
    Par défaut
    voila les tables utilisé:

    commandes(id_com,date_com,...)
    detail_commande(id_detcom,#id_com,#id_prod,quantité,prix,...)
    produits(id_prod,ref_prod,titre_prod,#id_fam,#id_cat,...)
    famille(id_fam,titre_fam,...)
    categorie(id_cat,#id_fam,...)

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 191
    Points : 82
    Points
    82
    Par défaut
    merci c'est bon reponse

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

Discussions similaires

  1. JOINTURE - Plusieurs tables
    Par sebgosse dans le forum Requêtes
    Réponses: 3
    Dernier message: 25/02/2009, 19h27
  2. [MySQL] requête de jointure plusieurs table
    Par info_sara dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/05/2008, 14h35
  3. [Jointure] Plusieurs tables
    Par Neuromancien2 dans le forum Requêtes
    Réponses: 13
    Dernier message: 23/04/2007, 10h42
  4. Requete SQL jointure plusieurs tables
    Par bibicha dans le forum Langage SQL
    Réponses: 1
    Dernier message: 31/08/2006, 18h38
  5. jointures de plusieurs tables
    Par ben127 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/06/2004, 15h57

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