Requête de jointure MySQL (interne, gauche, droite) (requête multi-table)

Une, requête de connexion MySQL

Structure grammaticale de la jointure interne

SELECT colonne (le champ à interroger) FROM table1 (le nom de la table à connecter) INNER JOIN (connexion interne) table2 ON conditions de connexion

Remarque:
1) jointure: utilisé pour interroger les données de deux ou plusieurs tables en fonction de la relation entre les colonnes de ces tables
2) utilisé pour interroger les enregistrements de données qui remplissent certaines conditions dans deux ou plusieurs tables en même temps
3) syntaxe Utilisez le mot clé INNER JOIN pour connecter plusieurs tables et utilisez ON pour définir la condition de connexion
4) est la méthode de connexion de table par défaut du système, vous pouvez omettre le mot clé INNER
5) plusieurs tables prennent en charge l'utilisation continue d'INNERJOIN, il est recommandé de ne pas utiliser plus de trois tables
6) ON La dernière condition est égale à 1, ce qui est vrai, sinon une erreur sera signalée.7
) Si la condition de connexion est un champ après ON, le type de champ doit être le même

Insérez la description de l'image ici

Exemple d'opération
  • Il y a deux tableaux ci-dessous, les noms et le contenu des tableaux sont les suivants:
第一张表:
mysql> select * from stu;                                                             
+----+---------+-------+------+------+
| id | name    | score | hoby | dizi |
+----+---------+-------+------+------+
|  1 | tianxia | 78.00 |    2 | nj   |
|  2 | diyi    | 89.00 |    1 | nj   |
|  3 | wode    | 55.00 |    1 | NULL |
|  4 | tade    | 57.00 |    3 | NULL |
|  5 | nida    | 66.00 |    1 | nj   |
|  6 | liushou | 55.00 |    3 |      |
|  7 | xiaoer  | 69.00 |   10 | bj   |
|  8 | dage    | 78.00 |    8 | tj   |
+----+---------+-------+------+------+
第二张表:
mysql> select * from hob;
+----+-----------+
| id | hoby     |
+----+-----------+
|  1 | 篮球      |
|  2 | 足球      |
|  3 | 乒乓球    |
|  4 | 羽毛球    |
|  5 | 台球      |
|  6 | 网球      |
+----+-----------+
6 rows in set (0.00 sec)
  • Connectez les champs hoby des deux tables via une jointure interne à la requête
得到的结果如下:
mysql> select a.id,a.name,b.hooby from stu as a inner join hob as b on a.hoby=b.id;
+----+---------+-----------+
| id | name    | hooby     |
+----+---------+-----------+
|  1 | tianxia | 足球      |
|  2 | diyi    | 篮球      |
|  3 | wode    | 篮球      |
|  4 | tade    | 乒乓球    |
|  5 | nida    | 篮球      |
|  6 | liushou | 乒乓球    |
+----+---------+-----------+
6 rows in set (0.00 sec)

Deux, requête de jointure gauche MySQL

Structure grammaticale de la connexion gauche

SELECT colonne (le champ à interroger) FROM table1 (le nom de la table qui doit être jointe à la requête) LEFT JOIN (jointure gauche) table2 ON conditions de jointure

Remarque:
1) Supposons qu'il y ait deux tables A et B. La requête de jointure gauche signifie que la table A est à gauche et la table B glisse à droite. La table A et la table B sont des enregistrements liés via une condition et la table B correspond à la table A.
2) Utilisé pour interroger le contenu entier d'une table et les enregistrements qui remplissent les conditions d'une autre table, c'est-à-dire correspondent à tous les enregistrements de la table de gauche et aux enregistrements éligibles de la table de
droite.3) Utilisez le mot clé LEFT JOIN dans la syntaxe pour joindre les tables et utiliser ON définit la condition de connexion
4) Les champs qui ne correspondent pas sont complétés par NULL par défaut
Insérez la description de l'image ici

Exemple d'opération
  • Connectez les champs hoby des deux tables via la requête de jointure gauche
得到结果如下:
mysql> select a.id,a.name,b.hooby from stu as a left join hob as b on a.hoby=b.id;   
+----+---------+-----------+
| id | name    | hooby     |
+----+---------+-----------+
|  2 | diyi    | 篮球      |
|  3 | wode    | 篮球      |
|  5 | nida    | 篮球      |
|  1 | tianxia | 足球      |
|  4 | tade    | 乒乓球    |
|  6 | liushou | 乒乓球    |
|  7 | xiaoer  | NULL      |
|  8 | dage    | NULL      |
+----+---------+-----------+
8 rows in set (0.00 sec)

Troisièmement, requête de jointure droite MySQL

Structure grammaticale de la bonne connexion

SELECT colonne (le champ à interroger) FROM table1 (le nom de la table à interroger) RIGHT JOIN (jointure à gauche) table2 ON condition de connexion
Remarque:
1) Utilisez le mot clé RIGHT JOIN pour joindre la table dans la syntaxe et utilisez ON pour définir la condition de connexion
2 ) Utilisé pour interroger tout le contenu d'une table et les enregistrements qui remplissent les conditions d'une autre table, c'est-à-dire, correspondent à tous les enregistrements de la table de droite et les enregistrements éligibles de la table de
gauche.3) Les champs sans correspondance sont complétés par NULL par défaut

Exemple d'opération
  • Connectez les champs hoby des deux tables via la requête de jointure gauche
mysql> select a.id,a.name,b.hooby from stu as a right join hob as b on a.hoby=b.id;
+------+---------+-----------+
| id   | name    | hooby     |
+------+---------+-----------+
|    1 | tianxia | 足球      |
|    2 | diyi    | 篮球      |
|    3 | wode    | 篮球      |
|    4 | tade    | 乒乓球    |
|    5 | nida    | 篮球      |
|    6 | liushou | 乒乓球    |
| NULL | NULL    | 羽毛球    |
| NULL | NULL    | 台球      |
| NULL | NULL    | 网球      |
+------+---------+-----------+
9 rows in set (0.00 sec)

Je suppose que tu aimes

Origine blog.csdn.net/wulimingde/article/details/109134307
conseillé
Classement