|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Frédéric Administrateur de base de données Inscription : avril 2011 Messages : 9 ![]() |
Bonjour,
J'ai tenté de chercher sur le forum mais pas évident quand on ne sait pas soit même comment définir le problème :s Je souhaiterais faire une jointure externe entre deux tables dont voici les structures imposées : - individu (no_individu) - telephone (id,no_individu,no_telephone,type,statut) Dans la table téléphone il n'y a d'enregistrements que si l'individu n'a effectivement un téléphone. D'où mon commencement de piste vers une jointure externe. De plus un même individu peut avoir plusieurs téléphones de type différent. Par exemple, on aura : individu n°4 avec un téléphone fixe 02xxxxxxxx. individu n°4 avec un téléphone mobile 02xxxxxxxx individu n°5 aucune téléphone Du coup dans ma requête ressemble à ça : Code :
Mais quand je rajoute une condition supplémentaire, par exemple je ne veux que les téléphone fixes : Code :
J'ai essayé avec : Mais que nenni ! Pour info, je travaille sur Oracle 10g R2. Merci d'avance si vous avez des pistes d'investigation. Frédéric. |
||||
|
|
10
|
|
|
#2 | ||
![]() Inscription : décembre 2002 Messages : 2 387 ![]() |
En bref, dans les jointures externes à la mode Oracle, il faut, dans le WHERE, rajouter le (+) sur chaque colonne appartenant à la table externe.
Code :
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
||
|
|
00
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() Frédéric Administrateur de base de données Inscription : avril 2011 Messages : 9 ![]() |
Quelle patate ! Je mettais le (+) au mauvais endroit
![]() Merci beaucoup pour la réponse. Ca ressemble donc à ça si jamais il y a une autre personne qui passe par là pour la même question : Code :
Frédéric. |
||
|
|
00
|
|
|
#4 | ||||||
|
Membre expérimenté
![]() Mohamed HouriInscription : mars 2010 Messages : 286 ![]() |
Bonjour,
Code :
Code :
nous demandons à Oracle que, lorsque cette correspondance n'existe pas à cause de la table telephone, d’être gentil quand même en nous affichant les enregistrements de la table individu et en remplaçant les enregistrements manquants de la table telephone par des NULLs. Donc, suivez bien, que dans le cas d'absence de correspondance entre les deux tables, les informations provenant de la table téléphone sont NULLs Alors comment voudriez-vous dans ce cas que la clause suivante fonctionne correctement NULL ne peut pas être égale à fixe. D'où la proposition de pomalaix Conclusion A chaque fois que vous avez une jointure entre deux tables qui ressemble à ceci Code :
|
||||||
|
|
00
|
|
|
#5 | ||||
|
Candidat au titre de Membre du Club
![]() Frédéric Administrateur de base de données Inscription : avril 2011 Messages : 9 ![]() |
Citation:
Citation:
En tout cas, j'ai bien réussi à faire ce que je voulais, merci Pomalaix. |
||||
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Mohamed HouriInscription : mars 2010 Messages : 286 ![]() |
La conclusion ne concernait pas votre cas bien précis. Elle s'adresse en général à ceux qui veulent comprendre pourquoi à l'origine vous n'aviez pas le résultat adéquat.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com