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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  left join X2

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

left join X2

n°2187453
golumest
Posté le 24-04-2013 à 18:50:26  profilanswer
 

Bonjour,
 
Je voudrais lier 3 tables avec un left join :
 
j'ai une table restaurant
une table info
une table service
 
restaurant  possede une clé secondaire qui pointe vers info et une autre vers service
 
 
Je veux avoir tous les restaurants de la table restaurant avec leur service et les infos mais je ne comprends pas comment je dois faire pour recuperer les service, pour moi il suffit de rajouter un left join supplémentraire?
 
SELECT *  
FROM restaurant  
LEFT JOIN info  
ON id = id_etab
LEFT JOIN service
ON restaurant.id = service.id
 
 
La 1ere clause left fonctionne mais quand je lui adjoint le 2eme left join ça va plus du tout!
 
Merci!
 

mood
Publicité
Posté le 24-04-2013 à 18:50:26  profilanswer
 

n°2187454
x1fr
Posté le 24-04-2013 à 18:56:18  profilanswer
 

restaurant.id et service.id sont les 2 clés primaires des 2 tables, ce n'est pas sur ces champs qu'il faut faire la liaison.

 

Il faut reprendre le modèle de la première liaison (id_etab est la clé secondaire qui pointe vers la clé primaire id de l'autre table)


Message édité par x1fr le 24-04-2013 à 18:56:28

---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
n°2187466
golumest
Posté le 24-04-2013 à 20:49:01  profilanswer
 

en theorie le 2eme left fait reference à la table restaurant ou info?
je vais revoir les clés demain, je n ai pa le modele sous la main...
merci

n°2187478
x1fr
Posté le 24-04-2013 à 23:10:15  profilanswer
 

Sur la liaison des 2


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
n°2187491
golumest
Posté le 25-04-2013 à 09:19:57  profilanswer
 

oui mais comme c'est un left join j'ai (d'apres mes souvenirs et ce que j'ai glané sur le net) toutes les entrées de la 1ere table (=restaurant), pour lesquelles on ajoute les entrées de la table info (qu'il y en ait ou pas) puis celle de la table service (là aussi qu'il y en ai ou pas), donc les left join font que les requetes suivantes se base bien sur l'intégralité de la table restaurant?
 
En theorie je devrais me retrouver avec tous les renseignements concernant la totalité des restaurants de la table restaurant qu'il y ait des infos ou non dans les tables service et info?
c'est bien ça?

n°2187492
x1fr
Posté le 25-04-2013 à 09:28:43  profilanswer
 

Oui pardon, j'ai l'habitude de l'écrire "LEFT OUTER JOIN", mais apparemment ça revient au même.
 
donc ta dernière phrase est bonne, reste que la liaison  sur les 2 clés primaires des tables restau et service n'est pas bonne. Une liaison doit se faire entre une clé primaire (ex : restaurant.id) et une clé étrangère (ex : id_etab)


---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
n°2187496
golumest
Posté le 25-04-2013 à 09:45:26  profilanswer
 

ok merci beaucoup, c'est clair !


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

  left join X2

 

Sujets relatifs
Random et limit sur un inner join MySQLPb : The left-hand side of an assignment must be a variable
Php et Join SQLUPDATE JOIN Oracle
UPDATE avec JOIN, WHERE, LIMIT, ORDER BY[Access / SQL] Update avec join
DMA et Shift leftVariable vide après un LEFT JOIN malgré une requête ok
Access 2007 left join qui fonctionne comme inner join ??? 
Plus de sujets relatifs à : left join X2


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