Question mysql LEFT JOIN ¨¨ ^^

Résolu
mr05j Messages postés 295 Date d'inscription   Statut Membre Dernière intervention   -  
 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
^^
__________________________________________________________
A voir également:

4 réponses

Dj Nam Messages postés 327 Date d'inscription   Statut Membre Dernière intervention   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
ROMULUS
 
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
ROMULUS
 
http://www.1keydata.com/fr/sql/sql-cle-etrangere.php
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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   Statut Membre Dernière intervention   27
 
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   Statut Membre Dernière intervention   27
 
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   Statut Membre Dernière intervention   22
 
Merci
0