Maison >base de données >tutoriel mysql >Analyse des instructions MINUS, INTERSECT et UNION ALL des instructions SQL
Trois mots-clés dans l'instruction SQL : MINUS (soustraction), INTERSECT (intersection) et UNION ALL (union);
Tout le monde aurait dû apprendre la notion d'ensembles au collège, je n'entrerai donc pas dans les détails. Ces trois mots-clés sont principalement utilisés pour opérer sur les résultats des requêtes de la base de données, tout comme leur signification chinoise : deux requêtes, <.>MOINS consiste à soustraire le deuxième résultat de la requête du premier résultat de la requête. S'il y a une intersection, soustrayez la partie de l'intersection ; sinon, il n'y a aucune différence par rapport au premier résultat de la requête. deux L'intersection des résultats de la requête, UNION ALL est l'union de deux requêtes
La différence de performances. est 15,956 fois ! Par conséquent, lorsqu'on rencontre ce genre de problème, il est préférable d'utiliser MINUS, INTERSECT et UNION ALL pour résoudre le problème, sinon, face à des millions de requêtes de données qui peuvent être vues partout dans le monde. affaire, le serveur de base de données ne sera pas battu à mort par nous ?
SELECT order_id FROM made_order MINUS SELECT order_id FROM charge_detail 耗时:1.14 sec SELECT a.order_id FROM made_order a WHERE a.order_id NOT exists ( SELECT order_id FROM charge_detail WHERE order_id = a.order_id ) 耗时:18.19 sec
PS : Lors de l'application de la soustraction, de l'intersection et de l'addition de deux ensembles, il y a des exigences strictes : 1. Les champs des deux ensembles doit être clair (l'utilisation de * ne fonctionnera pas, une erreur sera signalée) ; 2. Type de champ Identique à la commande (les noms peuvent être différents), par exemple : le champ 1 de l'ensemble 1 est NUMBER, le champ 2 est VARCHAR, alors le champ 1 de l'ensemble 2 doit également être NUMBER et le champ 2 doit être VARCHAR 3. Ne peut pas être trié, si vous souhaitez trier les résultats, vous pouvez ajouter une autre requête à l'extérieur après l'opération d'ensemble, puis trier Par exemple. l'exemple précédent peut être remplacé par :
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!