Maison > Article > base de données > Explication détaillée de la requête multi-tables dans MySQL
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 droit:SELECT * 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!