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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Besoin d'aide en SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide en SQL

n°366406
Shogun2002
Posté le 18-04-2003 à 14:28:13  profilanswer
 

J'ai une problème de SQL assez complexe à résoudre.
 
Voici un exemple :
 
j'ai 3 tables ....
 
Une table qui referencie des voitures.(id_voiture,id_proprio,id_garage) => a savoir les 2 derniers champs n'est pas obligatoirement rempli
Une table qui refernecie des proprietaires (id_proprio,nom_proprio)
Une table qui referencie des garages(id_garage, nom_gararge)
 
Comme faire pour selectionner toutes les voitures avec le nom du proprio, et le nom du gararge même si un des champs n'est pas renseigné ...
 
J'ai réussi de faire avec 2 tables (voiture + proprio) à l'aide d'un left join :
... voiture v left join proprio p on v.id_proprio=p.id_proprio ...
 
Mais quand je rajoute une 3eme table ça se gate !
 
Comment faire ?


Message édité par Shogun2002 le 18-04-2003 à 14:29:09
mood
Publicité
Posté le 18-04-2003 à 14:28:13  profilanswer
 

n°366432
polo021
Posté le 18-04-2003 à 14:40:05  profilanswer
 

Shogun2002 a écrit :

J'ai une problème de SQL assez complexe à résoudre.
 
Voici un exemple :
 
j'ai 3 tables ....
 
Une table qui referencie des voitures.(id_voiture,id_proprio,id_garage) => a savoir les 2 derniers champs n'est pas obligatoirement rempli
Une table qui refernecie des proprietaires (id_proprio,nom_proprio)
Une table qui referencie des garages(id_garage, nom_gararge)
 
Comme faire pour selectionner toutes les voitures avec le nom du proprio, et le nom du gararge même si un des champs n'est pas renseigné ...
 
J'ai réussi de faire avec 2 tables (voiture + proprio) à l'aide d'un left join :
... voiture v left join proprio p on v.id_proprio=p.id_proprio ...
 
Mais quand je rajoute une 3eme table ça se gate !
 
Comment faire ?


comme pour deux tables sauf que tu rajoutes un AND et ta deuxieme jointure
 
 
EDIT : tp detected il me semble, non?


Message édité par polo021 le 18-04-2003 à 14:48:30
n°366447
Shogun2002
Posté le 18-04-2003 à 14:46:18  profilanswer
 

polo021 a écrit :


comme pour deux tables sauf que tu rajoutes un AND et ta deuxieme jointure


 
Comme ça ?
 
select v.id, p.nom_proprio, g.nom_garage from voiture v left join proprio p on v.id_proprio=p.id_proprio and garage g on v.id_garage=g.id_garage

n°366449
Shogun2002
Posté le 18-04-2003 à 14:46:48  profilanswer
 

Je test !

n°366456
Shogun2002
Posté le 18-04-2003 à 14:50:00  profilanswer
 

Marche pas  :sweat:

n°366464
polo021
Posté le 18-04-2003 à 14:52:10  profilanswer
 

Shogun2002 a écrit :

Marche pas  :sweat:  


y faut verifier si tes champs sont pas null aussi

n°366466
tomlameche
Et pourquoi pas ?
Posté le 18-04-2003 à 14:54:17  profilanswer
 

Shogun2002 a écrit :

Marche pas  :sweat:  


Sous Oracle, on écrirai :
select v.id, p.nom_proprio, g.nom_garage  
from voiture v, proprio p, garage g  
where v.id_garage = g.id_garage (+) and
v.id_proprio = p.id_proprio (+)
 


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
n°366476
Shogun2002
Posté le 18-04-2003 à 14:57:48  profilanswer
 

polo021 a écrit :


y faut verifier si tes champs sont pas null aussi


 
C pourquoi j'utilise les left join !
Il me rajoute aussi le null .... Enfin avec 2 tables ...

n°366477
Shogun2002
Posté le 18-04-2003 à 14:58:16  profilanswer
 

tomlameche a écrit :


Sous Oracle, on écrirai :
select v.id, p.nom_proprio, g.nom_garage  
from voiture v, proprio p, garage g  
where v.id_garage = g.id_garage (+) and
v.id_proprio = p.id_proprio (+)
 
 


 
Moi je suis sous MSSQL (Sql Server)  :sweat:

n°366496
polo021
Posté le 18-04-2003 à 15:05:15  profilanswer
 

Shogun2002 a écrit :


 
C pourquoi j'utilise les left join !
Il me rajoute aussi le null .... Enfin avec 2 tables ...


desole je connaissais pas left join :jap:

mood
Publicité
Posté le 18-04-2003 à 15:05:15  profilanswer
 

n°366525
MagicBuzz
Posté le 18-04-2003 à 15:20:32  profilanswer
 

c'est pas un and qu'il faut mettre, mais à nouveau "left join"

n°366542
Shogun2002
Posté le 18-04-2003 à 15:26:19  profilanswer
 

MagicBuzz a écrit :

c'est pas un and qu'il faut mettre, mais à nouveau "left join"


 
Merci ça marche  :jap:


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

  Besoin d'aide en SQL

 

Sujets relatifs
besoin d'un peu d'aide pour une expression régulière[SQL] Probleme d'Update... [resolved]
bug dans mon programme vb.net besoin d'aide ( resolu)Erreur d'execution 94 avec MS VB ==> besoin aide requete SQL
[XSLT] aide transformation par le brouter[SQL][Oracle]Besoin d'aide pour une requête!
[SQL] Besoin d'aide pour céer un requete[SQL] Encore besoin d'1 chtit peu d'aide plizzz..
[SQL Server] besoin d'aide pour requete de majBesoin aide PHP pour me connecter et envoyer requettes SQL à Interbase
Plus de sujets relatifs à : Besoin d'aide en SQL


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