Requête de connexion MySQL (interne, gauche, droite)
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
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
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)