Vous allez ici apprendre à interroger plusieurs tables d’une base de données dans une même requête. Concrètement, nous allons voir comment réaliser une requête qui demandera à nos 2 tables (actualités et commentaires) un tableau contenant les pseudos et textes des commentaires avec le titre de l’actualité correspondante.
Etape 1 : Introduction
Nous allons partir de tables déjà existantes que vous pourrez recréer avec ce code:
Notre but va donc être de faire correspondre un commentaire à une actualité dans la table actu_commentaires, ce qui définit l’actualité est la colonne id_actu. Notre but est de faire en sorte d’afficher le titre de l’actualité et non son identifiant. Pour illustrer mon propos, nous souhaiterions par exemple afficher ceci en une seule requête : « Stéphane a écris un commentaire dans « Inner Join ou Left Join? »". Nous allons pour cela exécuter une jointure interne, qui est une des jointure la plus courante.
Etape 2 : INNER JOIN … ON
Nous allons utiliser pour « coller » nos 2 tables une requête de type INNER JOIN…ON, voici comment elle fonctionne:
En fait nous aurons après le mot clef « ON » le critère qui permet de joindre les 2 tables, ici nous voulons par exemple que l’identifiant « id_actu » corresponde à l’identifiant « id » de la table « actualités » comme pour le schéma ci-dessous:

A noter aussi que j’utilise une syntaxe « ma table » AS a qui correspond à la création d’un alias, celui-ci servant exclusivement à raccourcir notre requête dans le but d’écrire par exemple « a.titre » au lieu de « actualites.titre« . Voici ce que l’on pourrait avoir comme requête pour joindre les 2 tables:
Etape 3: Un peu plus loin avec LEFT JOIN
LEFT JOIN fonctionne de manière très similaire à INNER JOIN, à la seule différence que s’il ne trouve pas d’associations, il remplit à NULL les autres champs. Vous en aurez l’utilité si par exemple vous voulez connaître quelles actualités n’ont aucun commentaires, en veillant à ajouter une clause « WHERE c.id IS NULL« . On pourrait alors avoir ce genre de requête:
Conclusion
Cette petite introduction aux requêtes utilisant plusieurs tables est terminée, sachez aussi qu’il existe plusieurs autres types de jointures que je n’ai pas abordé dans ce tutorial.
Par ailleurs, vous pouvez aussi effectuer des requêtes sur plus de 2 tables assez facilement avec cette même méthode, il suffit d’ additionner les INNER JOIN … ON …



