Question mysql LEFT JOIN ¨¨ ^^ [Résolu/Fermé]

Signaler
Messages postés
295
Date d'inscription
lundi 17 août 2009
Statut
Membre
Dernière intervention
11 mars 2011
-
 ROMULUS -
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

Messages postés
327
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
31 janvier 2014
41
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

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
http://www.1keydata.com/fr/sql/sql-cle-etrangere.php
Messages postés
18452
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 octobre 2020
4 219
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/
Messages postés
141
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
17 février 2015
26
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 )
Messages postés
141
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
17 février 2015
26
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 )
Messages postés
295
Date d'inscription
lundi 17 août 2009
Statut
Membre
Dernière intervention
11 mars 2011
21
Merci