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

Oracle Discussion :

[Oracle] Jointures sur 3 tables -> probleme


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 108
    Par défaut [Oracle] Jointures sur 3 tables -> probleme
    Bonjour!

    Je vais essayé d'expliquer mon problème le plus clairement possible:

    Il concerne 3 tables:
    • certificats
    • reference
    • produit_certificat

    (d'autres tables interviennent également dans la requete mais pas dans le join).

    En gros je veux afficher tous les produits qui se trouve dans la table "produit_certificat" (qui est une relation entre une table de produit et la table de certificat), chaque row accompagné de la reference (de la table reference) concernant ce produit pour l'agence du certificat (qui lui est associé dans produit_certificat).

    Certificats:
    - certif_id
    - agence_id
    - ...

    Produit_certif:
    - prod_id
    - certif_id
    - ...

    Reference:
    - prod_id
    - agence_id
    - reference

    Un produit sera donc affiché en relation avec un certificat lui meme associé a une agence, et la relation entre le produit et cette agence nous renvoit (ou non) un reference code. Le fait est qu'il n'existe pas forcement de reference code pour un produit-agence donné. Mais dans ce cas je veux juste que la requete me renvoit 'null' pour la reference mais me renvoit correctement les autres informations (qu'il n'oublie pas ce row).

    Ce que je pensais devoir faire était un outer join sur agence_id ( de reference) et sur prod_id de reference aussi. Mais d'apres ce que je vois on ne peut pas faire 2 join sur une meme table... De plus je travaille avec oracle 9.x et les syntaxe sont de la forme (+) pour les jointures.

    SELECT * from certificats c, reference r, produits_certificat p
    WHERE
    p.certif_id = c.certif_id AND
    r.agency_id = c.agency_id AND -> n'existe pas forcement
    r.prod_id = p.prod_id -> n'existe pas non plus forcement

    Avant je n'avais pas besoin de l'agence dont je faisais simplement r.prod_id (+) = p.prod_id et ça fonctionnait nikel. Mais maintenant que l'agence entre également en compte je ne sais pas comment faire..

    J'èspere que vous allez pouvoir m'aider.
    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Je pense qu'il te faudrait te tourner vers des jointures un peu plus précises

    Lis le tuto de SQLpro sur les jointures (tu trouveras un lien sur mon site), il devrait t'apporter les infos nécessaires, s'il y a encore des points qui te parraissent encore obscure, n'hésite par à revenir poster
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 108
    Par défaut
    qu'entends tu par une jointure plus précise??

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 108
    Par défaut
    Enfait j'ai déja lu ce tutorial et malgres le fait qu'il soit super bien fait et explique pas mal de choses je n'ai pas trouvé la solution a mon problème...

  5. #5
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    il faudrait que tu vois quelle sont les jointures qui correspondent le mieux à ton cas... INNER ou [RIGHT|LEFT|FULL] OUTER par exemple...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 108
    Par défaut
    Hey bien moi je pensais a une outer join mais le probleme est qu'il m'en faut 2 sur une meme table ce qui n'est pas permit

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

Discussions similaires

  1. probleme avec jointure sur meme table
    Par looping dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/03/2010, 12h18
  2. [MySQL] Jointure sur une table déjà jointe
    Par genova dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/10/2005, 23h54
  3. Oracle 9iR2 sur Fedora Core 3 PROBLEME de runInstaller
    Par greatmaster1971 dans le forum Oracle
    Réponses: 13
    Dernier message: 29/12/2004, 19h34
  4. jointure sur TROIS tables
    Par caribou_belle dans le forum Langage SQL
    Réponses: 8
    Dernier message: 01/03/2004, 11h20
  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