Maison  >  Article  >  base de données  >  Comment effectuer une sous-requête dans la base de données MySQL

Comment effectuer une sous-requête dans la base de données MySQL

黄舟
黄舟original
2017-08-03 10:20:272444parcourir

Une sous-requête est une instruction de requête imbriquée dans une autre instruction de requête. Les résultats de la requête de l'instruction de requête interne peuvent être utilisés comme instruction de requête externe pour fournir des conditions de requête. La sous-requête peut inclure des mots-clés tels que IN, NOT IN, ANY, ALL, EXISTS et NOT EXISTS, ainsi que des opérateurs de comparaison tels que "=", "!=", etc. Comment effectuer une sous-requête ? comme suit :

Comment effectuer une sous-requête dans la base de données MySQL

1. Tout d'abord, le résultat de la requête dans une requête est utilisé comme condition de la requête externe et le mot-clé IN peut être utilisé. le code est le suivant :

SELECT * FROM city WHERE CountryCode IN (SELECT Code FROM country);

Comme indiqué ci-dessous :

Comment effectuer une sous-requête dans la base de données MySQL

2. la requête externe n'est pas le résultat de la requête interne, vous pouvez utiliser le mot-clé NOT IN, le code est le suivant :

SELECT * FROM city WHERE CountryCode NOT IN (SELECT Code FROM country);

comme indiqué ci-dessous :

Comment effectuer une sous-requête dans la base de données MySQL

3. Lors de l'utilisation de la requête par mot-clé EXISTS, l'instruction de requête interne ne renvoie pas l'enregistrement de la requête, mais renvoie une valeur booléenne lorsque la valeur renvoyée par la requête interne est vraie, l'instruction de requête externe le fera. effectuer la requête. Si false est renvoyé, la requête ne sera pas exécutée ou le résultat de la requête sera vide, le code est le suivant :

SELECT * FROM city WHERE EXISTS (SELECT Name FROM country);

comme indiqué ci-dessous :

Comment effectuer une sous-requête dans la base de données MySQL

4. À partir de la troisième étape, on peut voir qu'avec EXISTS L'opposé est NOT EXISTS Lorsque la valeur renvoyée par la requête interne est fausse, l'instruction de requête externe interrogera. . Si true est renvoyé, la requête ne sera pas effectuée ou le résultat de la requête sera vide. Le code est le suivant :

SELECT * FROM city WHERE NOT EXISTS (SELECT Name FROM country);

Comme le montre la figure ci-dessous :

Comment effectuer une sous-requête dans la base de données MySQL

5. Si l'une des conditions est remplie, l'instruction de requête externe peut être exécutée via cette condition. Utiliser le mot-clé ANY, le code est le suivant : .

SELECT * FROM city WHERE Population >= ANY (SELECT Population FROM country);
comme indiqué ci-dessous :


Comment effectuer une sous-requête dans la base de données MySQL

6. La sous-requête contient également des opérateurs de comparaison, notamment ">=", "

SELECT * FROM city WHERE Population >=  (SELECT Population FROM country WHERE Name = 'Afghanistan');
SELECT * FROM city WHERE Population <=  (SELECT Population FROM country WHERE Name = &#39;Afghanistan&#39;);
SELECT * FROM city WHERE Population !=  (SELECT Population FROM country WHERE Name = &#39;Afghanistan&#39;);
Comme le montre la figure ci-dessous :

Comment effectuer une sous-requête dans la base de données MySQL

Comment effectuer une sous-requête dans la base de données MySQL

Comment effectuer une sous-requête dans la base de données MySQL

7. Si toutes les conditions sont remplies, tous les résultats ne seront renvoyés que si l'instruction de requête interne est remplie. Le code est le suivant :

SELECT * FROM city WHERE Population >= ALL (SELECT Population FROM country WHERE Name = &#39;Afghanistan&#39;);
Comme indiqué ci-dessous :


Comment effectuer une sous-requête dans la base de données MySQL

Remarques

Faites attention à l'utilisation des sous-requêtes

Faites attention à la différence entre chaque mot-clé dans la sous-requête

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