Une sous- requête est un type d' instruction SQL qui exécute une requête dans une requête . Par exemple, vous exécutez une sous- requête pour extraire des données d'une table , puis la requête principale Récupère un jeu de résultats final de la sous- requête. Les sous- requêtes sont utilisées dans des requêtes complexes où l'administrateur de base de données souhaite interroger de multiples tables et ne peut pas utiliser l'instruction JOIN standard. Architecture sous-requête
une sous-requête est contenue dans la requête principale . En général , l'administrateur de base de données utilise l'instruction JOIN pour rejoindre une autre table à votre table principale. Si cela n'est pas possible, la sous- requête est utilisée pour récupérer une liste de dossiers. La sous- requête est toujours exécuté en premier , et les principaux filtres de requête large de la sous- requête. Vous pouvez également avoir des sous -requêtes dans une sous- requête. La requête interne est toujours exécuté en premier .
Création d'une sous-requête
La sous-requête est typiquement un "select" requête. Lorsque vous créez votre programme de base de données , vous définissez d'abord les règles métier sous- requête. Par exemple , utilisez l'instruction SQL suivante pour renvoyer une liste de comptes dans une table de nom d'utilisateur : SELECT * FROM usernameThe caractère "*" renvoie tous les champs de la table, de sorte que vous pouvez utiliser la requête principale pour afficher et filtrer les données que vous besoin de voir ou de traiter . Vous pouvez également filtrer les enregistrements de la sous- requête. Par exemple, utiliser la requête suivante pour obtenir uniquement les comptes d'utilisateurs où le nom d'utilisateur a un prénom de " Jane" : select * from username où name = 'Jane'
Ajouter le principal requête
avec le sous- requête définie , vous pouvez configurer la requête principale. Lorsque vous utilisez une requête comme une sous- requête, vous contenir les sous-requête entre parenthèses . Par exemple , en utilisant le nom de la requête de compte , la sous-requête ressemble à ce qui suit: ( select * from username où name = 'Jane' ) pour ajouter la requête à une requête principale , utilisez la commande suivante : INSERT INTO personnes ( select * from nom d'utilisateur où name = 'Jane' ) Cette instruction copie les noms de compte de la table de nom d'utilisateur et les insère dans la table «people» .
l' instruction IN
"IN" instruction utilise une sous-requête pour récupérer une liste de dossiers qui sont " dans " une autre table. Par exemple, si vous voulez voir une liste des personnes ayant une DI de "1" situé dans un tableau distinct des noms d'utilisateur , utilisez l'instruction suivante : select * from comptes où id est ( sélectionner ID de nom d'utilisateur où ID = 1) cette déclaration reçoit tous les comptes qui ont un nom d'utilisateur avec un identifiant de 1 . Ces requêtes complexes sont utilisés lorsque vous avez plusieurs tables avec des données similaires liés .