Besoin d'aide en SQL - SQL/NoSQL - Programmation
Marsh Posté le 18-04-2003 à 14:40:05
Shogun2002 a écrit : J'ai une problème de SQL assez complexe à résoudre. |
comme pour deux tables sauf que tu rajoutes un AND et ta deuxieme jointure
EDIT : tp detected il me semble, non?
Marsh Posté le 18-04-2003 à 14:46:18
polo021 a écrit : |
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
Marsh Posté le 18-04-2003 à 14:52:10
ReplyMarsh Posté le 18-04-2003 à 14:54:17
Shogun2002 a écrit : Marche pas |
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 (+)
Marsh Posté le 18-04-2003 à 14:57:48
polo021 a écrit : |
C pourquoi j'utilise les left join !
Il me rajoute aussi le null .... Enfin avec 2 tables ...
Marsh Posté le 18-04-2003 à 14:58:16
tomlameche a écrit : |
Moi je suis sous MSSQL (Sql Server)
Marsh Posté le 18-04-2003 à 15:05:15
Shogun2002 a écrit : |
desole je connaissais pas left join
Marsh Posté le 18-04-2003 à 15:20:32
c'est pas un and qu'il faut mettre, mais à nouveau "left join"
Marsh Posté le 18-04-2003 à 15:26:19
Reply
Marsh Posté le 18-04-2003 à 14:28:13
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