Jointure interne MySQL
Sommaire
Jointure interne MySQL
-
Objectifs
- Découvrez l’instructions MySQL Inner JOIN avec des exemples de syntaxe et de programmation
-
Présentation
- La jointure interne MySQL est utilisée pour renvoyer uniquement les résultats des tables qui correspondent à la condition spécifiée et masque les autres lignes et colonnes.
- Une jointure interne est une condition qui aboutit aux lignes qui satisfont à la clause ‘
where
‘ dans ‘toutes les tables’; - Une jointure interne peut être effectuée de deux façons différentes :
- à l’aide du mot-clé
WHERE
: c’est l’ancienne syntaxe, toujours utilisée aujourd’hui, qu’il faut donc connaître mais que vous devriez éviter d’utiliser si vous avez le choix ; - à l’aide du mot-clé
JOIN
: c’est la nouvelle syntaxe qu’il est recommandé d’utiliser. Elle est plus efficace et plus lisible. - Une jointure interne permet de sélectionner les enregistrements ayant des correspondances entre deux fichiers joints.
-
Jointure interne avec
WHERE
(ancienne syntaxe) - Bien que la clause
WHERE
soit principalement destinée au filtrage, la clauseWHERE
peut également être utilisée pour exprimer de nombreux types de jointures. Pour des informations conceptuelles sur les jointures, voir Utilisation des jointures (ou jonctions). - Une clause
WHERE
peut spécifier une jointure en incluant des conditions de jointure, qui sont des expressions booléennes définissant quelle(s) ligne(s) d’un côté de la jointure (JOIN
) correspond(ent) à une(des) ligne(s) de l’autre côté de la jointure. -
Jointure interne avec
JOIN
(nouvelle syntaxe) INNER JOIN
est la forme la plus courante deJOIN
et est très largement utilisée. Presque tous devraient avoir utilisé cela à un moment ou à un autre.- Dans MySQL,
INNER JOIN
sélectionne toutes les lignes des deux tables participantes pour apparaître dans le résultat si et seulement si les deux tables remplissent les conditions spécifiées dans la clauseON
… -
Syntaxe de jointure interne MySQL
- Dans le langage SQL la commande
INNER JOIN
, est un type de jointure très commune pour lier plusieurs tables entre-elles dans une même requête. - Cette commande retourne les enregistrements lorsqu’il y a au moins une ligne dans chaque colonne listé dans la condition.
- Le mot-clé
Inner Join
est utilisé avec l’instructionSELECT
et doit être écrit après la clauseFROM
. - Dans cette syntaxe, nous devons d’abord sélectionner la liste des colonnes, puis spécifier le nom de la table qui sera jointe à la table principale, apparaît dans l’
Inner Join
(table1, table2), et enfin, fournir la condition après le mot-clé ON. - La condition
Join
renvoie les lignes correspondantes entre les tables spécifiées dans la clause Inner. -
Exemple de jointure interne MySQL
- Affichez les noms des pays d’Afrique et d’Asie avec le nom de leur continent
-
Jointure interne MySQL sur plus de deux tables
- Nos exemples précédents montrent comment faire une jointure entre deux tables. Il se peut que vous ayez besoin de faire une jointure entre plus de deux tables.
- La syntaxe est la suivante pour les commandes INNER JOIN. Cette syntaxe peut être répété autant de fois que nécessaire.
-
Application
- Avec la base vue dans la leçon (Les jointures en MySQL).
- 1- utilisez les deux méthodes vues précédemment pour afficher la liste des noms de tous les fleuves d’Europe classés par ordre alphabétique.
- 2- Affichez la liste des 4 villes les plus peuplées en Europe.
- 3- Affichez la liste des pays et les fleuves qui les traversent.
Les jointures internes dépendent de la sélection des conceptions et des caractéristiques de la base de données. En conséquence, ces jointures internes sont utilisées dans les Equi-Joins et Natural Joins. Dans Equi Join, il existe un type spécifique de comparaison utilisé pour égaliser les deux tables données. Par conséquent, cette table utilise le prédicat égal. La jointure naturelle est un type de jointure Equi.
select t1.c1, t2.c2
from t1, t2
where t1.c1 = t2.c2;
select t1.c1, t2.c2
from t1 inner join t2
on t1.c1 = t2.c2;
Bien qu’il soit possible de faire une jointure interne avec un WHERE comme on vient de le voir, c’est une ancienne syntaxe et aujourd’hui on recommande plutôt d’utiliser JOIN. Il faut dire que nous étions habitués à utiliser le WHERE pour filtrer les données, alors que nous l’utilisons ici pour associer des tables et récupérer plus de données.
SELECT colonne1, colonne2, ..., colonne_n
FROM table_A
INNER JOIN table_B
ON table_A.colonneX = table_B.colonneX;
SELECT nomContinent, nomPays
FROM pays
INNER JOIN continent ON pays.numContinent = continent.numContinent
WHERE nomContinent IN ('Afrique','Asie');
SELECT *
FROM table_1
INNER JOIN table_2 ON table_1.une_colonne = table_2.autre_colonne
INNER JOIN table_3 ON table_1.une_colonne = table_3.autre_colonne;
WHERE
SELECT DISTINCT nomFleuve FROM fleuve, traverser, pays, continent
WHERE fleuve.numFleuve = traverser.numFleuve
AND traverser.numPays = pays.numPays
AND pays.numcontinent = continent.numContinent
AND nomContinent = 'Europe'
ORDER BY nomFleuve
JOIN
SELECT DISTINCT nomFleuve
FROM fleuve
INNER JOIN traverser ON fleuve.numFleuve = traverser.numFleuve
INNER JOIN pays ON traverser.numPays = pays.numPays
INNER JOIN continent ON pays.numcontinent = continent.numContinent
WHERE nomContinent = 'Europe'
ORDER BY nomFleuve;
SELECT pays.nomPays,fleuve.nomFleuve
FROM fleuve
INNER JOIN traverser ON fleuve.numFleuve=traverser.numFleuve
INNER JOIN pays on pays.numPays=traverser.numPays;