LEFT JOIN

Left join liste tous les résultats de la table de gauche même s'il n'y a pas de correspondance dans les deux tables.


Exemple 1:

SELECT * FROM `jeux` LEFT JOIN (`categories`) ON (jeux.fk_categorie = categories.id_categorie )




Le résultat de la requête est :

Explications :

  • jeux est le tableau de gauche et categories le tableau de droite
  • la requête restitue tous les enregistrements de jeux et leur associe les lignes correspondantes du tableau catégorie. S'il n'y avait pas de correspondance, le champ id_categorie aurait la valeur NULL.
    Remarque : Une INNER JOIN exclurait ces situations.
  • le résultat de la requêtes restitue les deux tableaux joints




Exemple 2 : On rajoute un critère de recherche :

SELECT * FROM `jeux` LEFT JOIN `categories` ON jeux.fk_categorie = categories.id_categorie

WHERE categories.categorie='Jeu de société'


Le résultat est :


Remarque : Pour alléger l'écriture on peut utiliser des Alias de la façon suivante :

SELECT * FROM `jeux` AS `j`LEFT JOIN `categories` AS `c` ON j.fk_categorie = c.id_categorie

WHERE c.categorie='Jeu de société'


Exemple 3: Recherche des utilisateurs ayant fait des emprunts


Le table gauche est adherents et la able droite est emprunts.

On remarque que Laurent DUPONT n'a pas emprunté de jeu ce qui explique les valeurs NULL dans les 3 dernières colonnes.