Question mysql LEFT JOIN ¨¨ ^^

Résolu/Fermé
mr05j Messages postés 295 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 11 mars 2011 - 18 nov. 2010 à 20:15
 ROMULUS - 13 juin 2013 à 15:07
svp salut^^

LEFT JOIN
ça sert a quoi au juste je suis debutant je connait un peut mais
LEFT JOIN
je sais pas pk on l'utilise Merci de me donner une descripion generale
^^
__________________________________________________________

4 réponses

Dj Nam Messages postés 327 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 31 janvier 2014 41
18 nov. 2010 à 21:48
Bonjour,

LEFT JOIN sert à retourner la ligne, même s'il n'y a pas de correspondance dans la table de droite (celle avec laquelle tu joint)

Par exemple je m'en suis servi aujourd'hui pour le cas suivant :
J'ai une table 'user' et une table 'address' dans ma table 'user' j'ai un champ 'address_id' clé étrangère faisant référence à la clé primaire 'address_id' de la table 'address'.
Dans mon cas, la ligne de la table 'address' n'existe pas forcément car elle n'est pas automatiquement créée lors de l'inscription du membre. Donc, même s'il n'y a pas de ligne dans cette table, je veux récupérer la ligne de la table 'user'.
Voici donc ma requête :
SELECT user.*, address.*
FROM user
    LEFT JOIN address ON (user.address_id = address.address_id)
WHERE user.user_id = 4

Ainsi, même sans adresse, on récupère les données du membre.
Si à la place tu mets "INNER JOIN" la requête ne retourne aucun résultat.

Voilà, en espérant avoir été clair, sinon n'hésite pas à demander.
(RIGHT INNER fonctionne de la même manière mais à l'inverse, c'est dans la table jointe que la ligne doit exister .... Je n'en ai personnelement, jamais eu besoin.)
2
salut, c'est pas plutôt des utilisateurs qui ont des adresses ? du coup la clé étrangère doit se positionner dans adresse, et elle référence un utilisateur. Chaque adresse a un papa (user) et possède donc son id (clé étrangère)
Cordialement
0
http://www.1keydata.com/fr/sql/sql-cle-etrangere.php
0
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
19 nov. 2010 à 17:38
Salut.

Encore un qui n'a pas chercher avant de poser sa question.

Je préfère donner des adresses plutôt que d'écrire un long message pour explique ce qui est déjà trouvable sur le Web :
- https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/916084-les-jointures-entre-tables
- http://www.siteduzero.com/tutoriel-3-214617-introduction-aux-jointures-sql.html
- https://sql.developpez.com/
1
coccoweb Messages postés 141 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 17 février 2015 27
19 nov. 2010 à 17:51
avion-f16 toujours en forme comme je peu voir.
L'es-tu suffisamment pour m'aider ?
( https://forums.commentcamarche.net/forum/affich-19882800-js-int-soucis-de-bbcode-regex#p19882800 )
0
coccoweb Messages postés 141 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 17 février 2015 27
19 nov. 2010 à 03:13
En SQL c'est super utile, une fois que c'est acquis on ne peu plus sens passer.

J'ai des pages web, ou a la base, j'avais de dix a quinze requêtes SQL, avec les jointures c'est finis, d'une fois tu joint toutes les donnée relatives.

Dans l'exemple de Dj Nam :
Ici on sélection TOUT dans user et TOUT dans adresse
A condition que "La le LEFT JOIN joue sont role" user.adress_id est égale a address.address_id

On fois qu'on récupérer il faut choisir a qui est l'adresse WHERE => user.user_id

Ça a l'air barbare comme ça, mais y a des foutu malin derrière MySQL

SELECT user.*, address.*
FROM user
    LEFT JOIN address ON (user.address_id = address.address_id)
WHERE user.user_id = 4


Perso, j'ai appris via developpez.com ( https://www.google.be/?gws_rd=ssl#sclient=psy&hl=fr&safe=active&q=join%20left%20site%3Amysql.developpez.com/&aq=f&aqi=g5&aql=&oq=&gs_rfai=&pbx=1&fp=1&cad=b )
0
mr05j Messages postés 295 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 11 mars 2011 22
2 déc. 2010 à 21:27
Merci
0