Dans MySQL, vous pouvez utiliser l'instruction "inner join" pour effectuer une requête intra-jointure multi-table. Il vous suffit d'utiliser l'instruction "select * from table inner join table sur la table 1. field = table 2". . champ;" déclaration. . Combinez les enregistrements de deux tables et renvoyez les enregistrements avec les champs associés correspondants.
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
Jointure interne
jointure ou jointure interne
Instruction SQL : sélectionnez * dans le score de jointure interne de l'étudiant sur student.Num=score.Stu_id;
this La déclaration équivaut à : select * from student,score Where student.ID=course.ID;
Informations détaillées :
Connexion externe
1. Rejoindre gauche, jointure gauche ou jointure externe gauche
Instruction SQL : sélectionnez * dans le score de jointure gauche de l'étudiant sur student.Num=score.Stu_id;
2. join
Instruction SQL : sélectionnez * à partir du score de jointure de droite de l'étudiant sur student.Num=score.Stu_id;
3. instruction : select * from student full join score on student.Num=score.Stu_id;
Grâce aux trois méthodes ci-dessus, différentes tables peuvent être réunies et transformées en une grande table pour les requêtes ultérieures. L'opération est plus simple. .
En ce qui concerne select * from student,score;, essayez de ne pas utiliser cette instruction, car le résultat serait trop fastidieux.
Jointure croisée
jointure croisée, une jointure croisée sans clause spécifiant les conditions de requête où produira le produit cartésien des deux tables.
Instruction SQL : sélectionnez * dans le score de jointure croisée des étudiants ;
Connexion de table avec différentes structures
Lorsque les deux tables ont une relation plusieurs-à-plusieurs, nous devons établir une table intermédiaire student_score, la table intermédiaire doit avoir au moins les clés primaires de deux tables.
Instruction SQL : sélectionnez s.Name, C.Cname à partir de student_score en tant que sc à gauche rejoindre l'étudiant en tant que s sur s.Sno=sc.Sno gauche rejoindre le score en tant que c sur c.Cno=sc.Cno
select C_name,grade from student left join score on student.Num=score.Stu_id where name='李五一';
La partie rouge est le tableau intermédiaire, qui est un tableau général qui combine tout le contenu des deux tableaux.
L'opérateur UNION est utilisé pour combiner les ensembles de résultats de deux ou plusieurs instructions select.
Les instructions SELECT à l'intérieur de UNION doivent avoir le même nombre de colonnes, chaque colonne doit également avoir des types de données similaires et l'ordre des colonnes dans chaque instruction SELECT doit être le même.
select Num from student union select Stu_id from score;
L'opérateur union vérifie les doublons par défaut. Si les valeurs en double sont autorisées, union all peut être utilisée. Pour deux tables avec la même structure, union peut également les fusionner en une seule table :
select * from student1 union select *from student2;
Sous-requête
Parfois, la condition requise pour la requête est le résultat d'une autre instruction select, seules les sous-requêtes le feront être utilisé.
1. Sous-requête avec le mot-clé IN
Instruction SQL : sélectionnez * de l'étudiant où Num IN (sélectionnez Stu_id dans le score);
Avec le mot-clé EXISTS La requête interne de. la sous-requête
exists renvoie une valeur vraie. Si vrai est renvoyé, la requête externe interrogera, sinon la requête externe n'interrogera pas.
Instruction SQL : sélectionnez * de l'étudiant où existe (sélectionnez * du score où C_name='computer');
Utilisez une sous-requête avec N'IMPORTE QUEL mot-clé
Tant que l'un des mots-clés ANY est satisfait, la requête externe sera exécutée via cette condition.
Instruction SQL : sélectionnez sname,(date_format(from_days(now())-to_days(birthday)),'%Y')+0) comme 'age' de l'élève dont l'anniversaire>ANY(sélectionnez l'anniversaire à partir de student Where bumen='Computer Science Department');
4. Sous-requête avec le mot-clé ALL
L'utilisation du mot-clé ALL doit satisfaire tous les résultats renvoyés par toutes les instructions de requête internes avant l'exécution de la requête externe
Instruction SQL : sélectionnez sname,(date_format(from_days(now())-to_days(birthday)),'%Y')+0) comme 'age' de l'élève où anniversaire>TOUS (sélectionnez l'anniversaire de l'élève où bumen ='Département d'Informatique');
Recommandations d'apprentissage associées :
Tutoriel mysqlCe 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!