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

SQL Oracle Discussion :

jointure de 3 tables


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Par défaut jointure de 3 tables
    bonjour à tous

    j'ai 3 tables

    equipement (num char(5) primary key,type char(50))
    materiel(num char(5) references equipement(num) primary key, marque char(50);
    logiciel (num char(5) references equipement(num) primary key,version char(10);
    svp,donnez-moi votre avis sur cette requete qui n'affiche aucun resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select e.num,e.type,m.marque,l.version
    from materiel m join equipement e on m.num=e.num
    join logiciel l on e.num=l.num
    et je l'ai essayé d'une autre façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select e.num,e.type,m.marque,l.version
    from equipement e,materiel m,logiciel l
    where e.num=m.num and
    e.num=m.num
    mais en vain, le resultat est : "aucune ligne selectionnée'

    merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Une petite remarque, un champ qui s'appelle NUM et qui est en CHAR...
    Pour se prendre les pieds dans le tapis, c'est un bon début...

    Tes 2 requêtes sont correctes.
    Regarde du côté des données.
    Est-ce que tes trois tables sont remplies avec au moins un "NUM" commun ?
    Il n'y aurait pas un problème d'espace dans ces champs ?
    Y-a-t'il des contraintes d'intégrité entre elles ?

    [Ajout]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT e.num,e.type,m.marque,l.version
    FROM equipement e,materiel m,logiciel l
    WHERE e.num=m.num AND
    e.num=L.num
    Dernière modification par Invité ; 15/06/2010 à 21h18.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Par défaut
    merci Jerome_Mtl
    oui, les 3 trois tables sont remplies avec un NUM commun

    equipement
    -----------
    1 materiel
    2 logiciel
    3 matériel


    materiel
    ---------
    1 HP
    3 Acer


    logiciel
    --------
    2 2007

    - pas de problème d'espaces puisque ces tables étaient remplies sans problème

    - pas de contrainte d'intégrité

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par killua86 Voir le message
    oui, les 3 trois tables sont remplies avec un NUM commun
    Lequel ?? Personnellement, je n'en vois aucun qui soit dans les 3 tables ! C'est donc en toute logique que tes requêtes ne ramènent rien : Aucun enregistrement ne répond à la jointure sur les 3 tables...

    Citation Envoyé par killua86 Voir le message
    - pas de contrainte d'intégrité
    Et pourquoi ? Tu préfères gérer ça à la main ?

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Par défaut
    NB : les deux tables (materiel,logiciel) héritent de la table equipement

    exemple:
    la table equipement contient les NUM suivants (1,2,3)
    donc d'aprés vous, lors de la création d'un nouveau materiel avec le NUM(1) il faut ajouter le NUM '1' à la table materiel et logiciel

    je pense que mon code est erroné; il ne correspond pas à mon cas
    donc comment faire ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par killua86 Voir le message
    je pense que mon code est erroné; il ne correspond pas à mon cas
    donc comment faire ?
    Dans votre premier message, vous nous demandez pourquoi votre requête ne ramène rien et je vous l'explique.

    Que cherchez-vous donc à obtenir au final ?
    Tant que vous ne nous donnez pas plus de détails, je ne sais pas le résultat que vous souhaitez obtenir.

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

Discussions similaires

  1. Jointure entre deux tables et résultat
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 14h50
  2. [jointure]requete possible de double jointure entre 2 tables
    Par akira_le_gaucher dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/05/2004, 15h03
  3. jointure sur TROIS tables
    Par caribou_belle dans le forum Langage SQL
    Réponses: 8
    Dernier message: 01/03/2004, 11h20
  4. Jointure entre 2 tables et OR
    Par PyRoFlo dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/02/2004, 18h42
  5. Jointure sur 2 tables de bases différentes
    Par Celina dans le forum Langage SQL
    Réponses: 10
    Dernier message: 10/11/2003, 11h56

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