Question mysql LEFT JOIN ¨¨ ^^
Résolu
mr05j
Messages postés
295
Date d'inscription
Statut
Membre
Dernière intervention
-
ROMULUS -
ROMULUS -
A voir également:
- Question mysql LEFT JOIN ¨¨ ^^
- Mysql community server - Télécharger - Bases de données
- Join pdf - Télécharger - PDF
- Left shift clavier - Forum MacOS
- Touche Shift gauche ne fonctionne pas toujours - Forum Windows 10
- Mysql error 2002 ✓ - Forum Linux / Unix
4 réponses
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 :
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.)
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.)
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/
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/
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 )
L'es-tu suffisamment pour m'aider ?
( https://forums.commentcamarche.net/forum/affich-19882800-js-int-soucis-de-bbcode-regex#p19882800 )
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
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 )
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 )
Cordialement