left join X2 - SQL/NoSQL - Programmation
Marsh Posté le 24-04-2013 à 18:56:18
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)
Marsh Posté le 24-04-2013 à 20:49:01
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
Marsh Posté le 25-04-2013 à 09:19:57
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?
Marsh Posté le 25-04-2013 à 09:28:43
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)
Marsh Posté le 24-04-2013 à 18:50:26
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!