Maison  >  Article  >  base de données  >  Quelle est la méthode de requête de jointure interne dans MySQL

Quelle est la méthode de requête de jointure interne dans MySQL

WBOY
WBOYavant
2023-06-02 08:52:321141parcourir

Inner join est également appelée connexion et constitue le premier type de connexion. Également appelée jointure normale ou jointure naturelle, une jointure interne supprime toutes les lignes de la table de résultats qui ne correspondent pas aux lignes d'autres tables jointes, de sorte que des informations peuvent être perdues dans la jointure interne.

Quelle est la méthode de requête de jointure interne dans MySQL

Utilisez le mot-clé INNER JOIN dans la clause MySQL FROM pour joindre les deux tables, et utilisez la clause ON pour définir les conditions de connexion. Syntaxiquement, INNER JOIN et CROSS JOIN peuvent être interchangés sans aucune condition.

Le format de la syntaxe est le suivant

SELECT 
FROM  INNER JOIN  [ ON子句]

La description de la syntaxe est la suivante

 : Le nom de la colonne à récupérer.

 : Les noms des deux tables pour la connexion interne.

Après la clause FROM, vous pouvez omettre le mot-clé INNER et utiliser directement le mot-clé JOIN, car les jointures internes sont la méthode de connexion de table par défaut du système. Après avoir utilisé les jointures internes, les conditions de jointure des tables peuvent être définies via la clause ON de la clause FROM.

INNER JOIN ou JOIN peuvent être utilisés en continu entre plusieurs tables dans la clause FROM, afin que les jointures internes de plusieurs tables puissent être réalisées en même temps.

La table tb_students_info et la table tb_departments contiennent le champ dept_id du même type de données, et une requête de jointure interne est utilisée entre les deux tables.

L'instruction SQL d'entrée et les résultats de l'exécution sont les suivants

mysql> SELECT id,name,age,dept_name
   -> FROM tb_students_info,tb_departments
   -> WHERE tb_students_info.dept_id=tb_departments.dept_id;
+----+--------+------+-----------+
| id | name   | age  | dept_name |
+----+--------+------+-----------+
|  1 | Dany   |   25 | Computer  |
|  2 | Green  |   23 | Chinese   |
|  3 | Henry  |   23 | Math      |
|  4 | Jane   |   22 | Computer  |
|  5 | Jim    |   24 | Computer  |
|  6 | John   |   21 | Math      |
|  7 | Lily   |   22 | Computer  |
|  8 | Susan  |   23 | Economy   |
|  9 | Thomas |   22 | Chinese   |
| 10 | Tom    |   23 | Economy   |
+----+--------+------+-----------+
10 rows in set (0.00 sec)

Ici, la plus grande différence entre l'instruction SELECT et l'introduction précédente est la suivante : les colonnes spécifiées après SELECT appartiennent respectivement à deux tables différentes, l'identifiant, le nom et l'âge sont dans la table tb_students_info , tandis que dept_name est dans la table tb_departments, et la clause FROM répertorie deux tables, tb_students_info et tb_departments. La clause WHERE est utilisée ici comme condition de filtre, indiquant que ce n'est que lorsque les valeurs du champ dept_id dans les deux tables sont égales que les conditions de la requête de jointure sont remplies.

Vous pouvez voir à partir des résultats renvoyés que les enregistrements affichés sont de nouveaux enregistrements composés de valeurs de colonnes différentes dans les deux tables.

Conseils : étant donné que la table tb_students_info et la table tb_departments ont le même champ dept_id, lors de la comparaison, le nom de la table doit être entièrement qualifié (au format "nom de la table. nom de la colonne"). Si seul dept_id est donné, MySQL. ne saura pas à quoi il fait référence et renvoie un message d'erreur.

Utilisez la syntaxe INNER JOIN pour effectuer des requêtes de jointure interne entre la table tb_students_info et la table tb_departments L'instruction SQL d'entrée et les résultats de l'exécution sont les suivants.

mysql> SELECT id,name,age,dept_name
   -> FROM tb_students_info INNER JOIN tb_departments
   -> WHERE tb_students_info.dept_id=tb_departments.dept_id;
+----+--------+------+-----------+
| id | name   | age  | dept_name |
+----+--------+------+-----------+
|  1 | Dany   |   25 | Computer  |
|  2 | Green  |   23 | Chinese   |
|  3 | Henry  |   23 | Math      |
|  4 | Jane   |   22 | Computer  |
|  5 | Jim    |   24 | Computer  |
|  6 | John   |   21 | Math      |
|  7 | Lily   |   22 | Computer  |
|  8 | Susan  |   23 | Economy   |
|  9 | Thomas |   22 | Chinese   |
| 10 | Tom    |   23 | Economy   |
+----+--------+------+-----------+
10 rows in set (0.00 sec)

INNER JOIN est utilisé pour spécifier la relation entre deux tables dans l'instruction de requête. Lors de l'utilisation de cette syntaxe, les conditions de connexion sont données à l'aide de la clause ON au lieu de WHERE ON et les conditions spécifiées après WHERE sont les mêmes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer