Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2584 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle] Jointure, avec une clé étrangère pouvant valoir null

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Oracle] Jointure, avec une clé étrangère pouvant valoir null

n°1132789
XZell
Posté le 27-06-2005 à 20:11:00  profilanswer
 

Bonjour à tous :hello:
 
Je suis sous Oracle et j'ai une table TA contenant, entre autres, une clé
étrangère (colonne b_id) vers une autre table TB. Lors de
l'affichage des éléments de TA, je veux afficher non pas la clé étrangère
(normal, ce n'est qu'un identifiant numérique) mais le libellé
correspondant dans TB (colonne libelle). Jusque là, rien de bien
compliqué. Le problème se situe lors de l'affichage des enregistrements ayant une clé étrangère valant null. D'où ma requête, que je trouve plutôt crade :/
 

Code :
  1. select distinct TA.a_id, decode(TB.b_id, null, '', TB.libelle)
  2. from TA,TB
  3. where TA.b_id is null or TA.b_id = TB.b_id


 
C'est un peu du bricolage car lorsque la clé étrangère vaut null, Oracle me fait un simple produit cartésien entre les 2 tables :fou:, d'où le decode pour afficher des chaînes vides au lieu de tous les libelle de la table TB, et le distinct pour finalement afficher l'enregistrement voulu.
 
Y'a certainement une méthode plus propre, non ? :heink:

mood
Publicité
Posté le 27-06-2005 à 20:11:00  profilanswer
 

n°1132828
Arjuna
Aircraft Ident.: F-MBSD
Posté le 27-06-2005 à 20:59:59  profilanswer
 

Code :
  1. select distinct TA.a_id, nvl(TB.libelle, '')
  2. from TA,TB
  3. where TA.b_id = TB.b_id(+)


 
Ca devrait marcher ça.

n°1132849
XZell
Posté le 27-06-2005 à 21:27:30  profilanswer
 

Merci, j'essaie ça demain matin au taff :)

n°1132887
skeye
Posté le 27-06-2005 à 22:15:55  profilanswer
 

(ça s'appelle une jointure externe, au cas où tu chercherais à retrouver la syntaxe pour un autre sgbd, plus tard...)


---------------
Can't buy what I want because it's free -
n°1133077
Arjuna
Aircraft Ident.: F-MBSD
Posté le 28-06-2005 à 00:59:02  profilanswer
 

cela dit, avec le coup des NULL, ça fait un peu bizarre, mais ça devrait passer.

n°1133181
XZell
Posté le 28-06-2005 à 09:44:04  profilanswer
 

Ca marche nickel, merci :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle] Jointure, avec une clé étrangère pouvant valoir null

 

Sujets relatifs
Oracle passer des argumentsProbleme de connexion ORACLE et C#
Problème de clef etrangèreORACLE : occupation mémoire du varchar2
[C#] Connexion Oracle avec OracleClient.dllProbleme dans un select (jointure)
problème avec ma procédure sous oracleGroup By & Order By Oracle
Bug sur une affectation "Java null pointer exeption"Pb de connexion Oracle
Plus de sujets relatifs à : [Oracle] Jointure, avec une clé étrangère pouvant valoir null


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR