Maison  >  Article  >  base de données  >  Explication détaillée de la requête multi-tables dans MySQL

Explication détaillée de la requête multi-tables dans MySQL

迷茫
迷茫original
2017-03-26 11:28:281235parcourir

Requête multi-tables
1. Catégorie :
* Fusionner l'ensemble de résultats (comprendre)
* Rejoindre requête
* Sous-requête

Ensemble de résultats de fusion
* Dans la table qui doit être fusionnée, Le type et le nombre de colonnes sont les mêmes
* UNION, supprimez les lignes en double
*UNION ALL, ne supprimez pas les lignes en double

 SELECT * FROM cd/*cd表*/UNION ALLSELECT * FROM ab;/*ab表*

Requête de jointure
1. Classification
* Jointure interne
* Jointure externe
> ; Jointure externe droite
> Jointure externe complète (non prise en charge par MySQL)
* Jointure naturelle (une méthode simplifiée)


2. Jointure interne * Dialecte :
SELECT * FROM Tableau 1 Alias ​​​​1, Tableau 2 Alias ​​​​2 WHERE Alias ​​​​1.xx = Alias ​​2.xx * Standard :
SELECT * FROM Table 1 Alias ​​​​1 INNER JOIN ​​​​Tableau 2 Alias ​​​​2ON alias 1.xx = alias 2.xx *Naturel :
SELECT * FROM Tableau 1 Alias ​​​​1 NATURAL JOIN ​​​​Tableau 2 Alias ​​​​2
* Tous les enregistrements interrogés par la jointure interne remplissent les conditions.

3. Jointure externe
* Extérieur gauche  : SELECT * FROM Tableau 1 Alias ​​​​1 LEFT OUTER JOIN ​​​​Tableau 2 Alias ​​​​2 ON Alias ​​​​1.xx=Alias ​​2.xx 
> Les enregistrements de la table de gauche seront interrogés, qu'ils remplissent ou non les conditions, tandis que les enregistrements de la table de droite ne peuvent être récupérés que s'ils remplissent les conditions. Pour les enregistrements du tableau de gauche qui ne remplissent pas les conditions, la partie droite du tableau est NULL
* Extérieur gauche naturel  : SELECT * FROM Tableau 1 Alias ​​​​1 JOINTURE EXTERNE GAUCHE NATURELLE Table 2 Alias ​​​​2 ON Alias ​​​​1.xx=Alias ​​​​2.xx
* Extérieur droitSELECT * FROM Tableau 1 Alias ​​​​1 RIGHT OUTER JOIN ​​​​Tableau 2 Alias ​​​​2 ON Alias ​​​​1.xx=alias 2. xx                                                                                                                           > Pour les enregistrements de la table de droite qui ne remplissent pas les conditions, la partie gauche de la table est NULL
* Naturel extérieur droit  :
SELECT * FROM Tableau 1 Alias ​​​​1 NATURAL RIGHT OUTER JOIN Tableau 2 Alias ​​​​2 ON Alias ​​​​1.xx=Alias ​​​​2.xx * Lien complet : Vous pouvez utiliser UNION
pour compléter le lien complet
sous-requête
: Il y a une requête dans la requête (voir le mot clé select Number! ) 1. Position d'apparition :

🎜> * Existe sous forme de tableau après from (plusieurs lignes et colonnes )
2. Conditions * (***) Une seule ligne et une seule colonne :
SELECT * FROM table 1 alias 1 WHERE colonne 1 [=, >, 95ec6993dc754240360e28e0de8de30a=, <=, !=] (SELECT colonne FROM table 2 alias 2 WHERE condition)

* (**)Plusieurs lignes et une seule colonne : SELECT * FROM table 1 alias 1 WHERE colonne 1 [IN, ALL, ANY]
(SELECT colonne FROM table 2 alias 2 condition WHERE) * (*) Une seule ligne et plusieurs colonnes :
SELECT * FROM table 1 alias 1 WHERE (colonne 1, colonne 2) IN (SELECT colonne 1, colonne 2 FROM table 2 alias 2 condition WHERE)  * (***)Plusieurs lignes et plusieurs colonnes : SELECT * FROM table 1 alias 1, (SELECT....) Alias ​​​​2 WHERE condition

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn