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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SELECT et NULL discriminatoire [résolu]/ Cumuler L/R join [pas résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SELECT et NULL discriminatoire [résolu]/ Cumuler L/R join [pas résolu]

n°783757
Gaxx
Posté le 01-07-2004 à 16:11:45  profilanswer
 

Bonjour,
Sur une base de données Access 97 je fais la requête suivante :

Code :
  1. SELECT [T_B].[Nom], [T_C].[Titre] FROM [T_B], [T_C], [T_A] WHERE [T_B].[NoID] = [T_A].[NoID_T_B] AND [T_C].[NoID] = [T_A].[NoID_T_A] AND [T_A].[NoID]=4


 
Les tables sont en liaison suivant le "schéma" suivant :  
[T_B] <--   [T_A]   --> [T_C]    
NoID        NoID        NoID     (clefs primaires)
            NoID_T_B             (clef étrangère en provenance de T_B)
            NoID_T_C             (clef étrangère en provenance de T_C)
 
Voici le problème :  
Lorsque [T_B].[NoID] ou [T_C].[NoID] est à NULL mon SELECT ne me renvoie rien même si l'autre champ est renseigné...
 
Y a-t-il un moyen de récupérer un NULL dans [T_B].[Nom] ou [T_C].[Titre] lorsque le NoID (de [T_B] ou [T_C]) est à NULL ???
 
EDIT
J'ai viré une info erronée : les infos de [T_B] et [T_C] complètent celles de [T_A] (et [T_A] n'est pas une table de jointure)
 
***********************************************************************
Cumuler L/R join : http://forum.hardware.fr/hardwaref [...] tm#t784523
 


Message édité par Gaxx le 02-07-2004 à 11:15:31
mood
Publicité
Posté le 01-07-2004 à 16:11:45  profilanswer
 

n°783801
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-07-2004 à 16:40:29  profilanswer
 

Regarde du côté de :
LEFT/RIGHT OUTER JOIN


Message édité par Arjuna le 01-07-2004 à 16:40:37
n°783940
Gaxx
Posté le 01-07-2004 à 18:11:51  profilanswer
 

Arjuna a écrit :

Regarde du côté de :
LEFT/RIGHT OUTER JOIN


 
Merci  :jap:  
J'avais déjà vu l'aide sur les jointures et j'avais trouvé ça rebutant ... Et après l'avoir lu avec attention, je confirme ça l'est ! C'est tout de même dommage de devoir passer par les jointures pour ça alors que dans le cas contraire (ne pas vouloir les NULL) il suffirait de rajouter une clause beaucoup plus simple...
 
Mais voilà la solution :  
 

Code :
  1. SELECT [T_B].[Nom], [T_C].[Titre]
  2. FROM [T_B]
  3. INNER JOIN (
  4. [T_A]
  5. LEFT OUTER JOIN [T_C] ON [T_A].[NoID_T_C] = [T_C].[NoID] )
  6. ON [T_B].[NoID] = [T_A].[NoID_T_B]
  7. WHERE [T_A].[NoID] = 4


n°784109
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-07-2004 à 21:59:37  profilanswer
 

Bah avec Oracle ou SQL Server t'as pas besoin d'utiliser cette syntaxe rébarbative.
 
Mais je ne crois pas qu'Access supporte la syntaxe SQL Server...

n°784523
Gaxx
Posté le 02-07-2004 à 11:05:03  profilanswer
 

Arjuna a écrit :

Bah avec Oracle ou SQL Server t'as pas besoin d'utiliser cette syntaxe rébarbative.
 
Mais je ne crois pas qu'Access supporte la syntaxe SQL Server...


 
Tu me rassure car j'ai appris le SQL sous Oracle et il me semblai ne pas avoir besoin de ce type de syntaxe. Or depuis que je bosse sous Access j'ai l'impression de ne pas connaître le SQL  :pt1cable: ...
 
EDIT :  
Y a-t-il moyen de récupérer plusieurs champs à NULL en cumulant les LEFT/RIGHT JOIN ? J'ai des messages d'erreur à chaque fois que je tente de cumuler ces jointures et j'ai la désagréable sensation qu'il est impossible de le faire...


Message édité par Gaxx le 02-07-2004 à 11:08:18
n°784530
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-07-2004 à 11:07:34  profilanswer
 

pour les inner join, la syntaxe d'oracle marche très bien.


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

  SELECT et NULL discriminatoire [résolu]/ Cumuler L/R join [pas résolu]

 

Sujets relatifs
pb avec selecttextfield null
[RESOLU] Obtenir le resultat d'une requete et le nombre de reponse[RESOLU]passage par l'url en asp
[VBA] Insérer numéro de page dans tableau [RESOLU][javascript] Qu'est-ce que ne comprend pas ie ? [resolu]
Pb avec l'affichage du nom et de la version d'un navigateur [Resolu][RESOLU] redirection vers page + include
[résolu] plusieurs édition dans une seule requete[presque RESOLU] PHP en ligne de commande, traitement hebdo
Plus de sujets relatifs à : SELECT et NULL discriminatoire [résolu]/ Cumuler L/R join [pas résolu]


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