INNER JOIN

INNER JOIN lie plusieurs tables entre elles et retourne les enregistrements lorsqu'il y a au moins une ligne dans chaque colonne qui correspond à la condition.

SELECT * FROM table1

INNER JOIN table2 ON conditions;


Exemple 1 :

SELECT *
FROM `jeux`
INNER 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 qui ont en commun les valeurs de fk_categorie et id_categorie.
  • le résultat de la requêtes restitue les deux tableaux joints




Exemple 2 : On rajoute une troisième table et un critère de recherche :

SELECT * FROM `jeux`

INNER JOIN (`categories`,`ages`)

ON (`jeux`.`fk_categorie`=`categories`.`id_categorie` AND `jeux`.`fk_age`=`ages`.`id_age`)

WHERE (ages.age='à partir de 8 ans')


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`INNER JOIN (`categories` AS `c`, 'ages' AS `a`)

ON (j.fk_categorie = c.id_categorie AND j.fk_age=a.age)

WHERE a.age='à partir de 8 ans'