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'