Maison base de données tutoriel mysql msyql中子查询IN,EXISTS,ANY,ALL,UNION介绍

msyql中子查询IN,EXISTS,ANY,ALL,UNION介绍

Jun 07, 2016 pm 05:52 PM

在mysql中子查询是将一个查询语句嵌套在另一个查询语句中内层查询语句的查询结果,可以为外层查询语句提供查询条件,mysql中常用的子查询IN,EXISTS,ANY,ALL,UNION,下面我一一介绍介绍。

因为在特定情况下,一个查询语句的条件需要另一个查询语句来获取


带IN关键字的子查询

IN 运算符用于 WHERE 表达式中,以列表项的形式支持多个选择,语法如下:

WHERE column IN (value1,value2,...)
WHERE column NOT IN (value1,value2,...)
当 IN 前面加上 NOT 运算符时,表示与 IN 相反的意思,即不在这些列表项内选择。

 

 代码如下 复制代码

查询

SELECT ID,NAME FROM A  WHERE ID IN (SELECT AID FROM B)//查询B表中AID的记录
SELECT ID,NAME FROM A WHERE ID NOT IN (SELECT AID FROM B) 意思和上面相反

删除

delete from articles where id in (1,2,3);  //删除id=1,id=2,id=3的记录
delete from articles where id not in (1);//删除id!=1的记录

此处首先查询出department表中所有d_id字段的信息,并将结果作为条件

接着查询employee表中以d_id为条件的所有字段信息

NOT IN的效果与上面刚好相反
 

带比较运算符的子查询

 代码如下 复制代码

mysql> SELECT d_id, d_name FROM department
    -> WHERE d_id!=
    -> (SELECT d_id FROM employee WHERE age=24);
+------+-----------+
| d_id | d_name    |
+------+-----------+
| 1002 | 生产部    |
| 1003 | 销售部    |
+------+-----------+

2 rows in set (0.00 sec)这里查询出了哪些部门没有年龄为24岁的员工,看起来有点复杂

此外,运算符还有很多,这里不再赘述

 

带EXISTS关键字的子查询

MySQL EXISTS 和 NOT EXISTS 子查询语法如下:

SELECT ... FROM table WHERE  EXISTS (subquery)
该语法可以理解为:将主查询的数据,放到子查询中做条件验证,根据验证结果(TRUE 或 FALSE)来决定主查询的数据结果是否得以保留。

 代码如下 复制代码

mysql> SELECT * FROM employee
    -> WHERE EXISTS
    -> (SELECT d_name FROM department WHERE d_id=1004);
Empty set (0.00 sec)

此处内层循环并没有查询到满足条件的结果,因此返回false,外层查询不执行

NOT EXISTS刚好与之相反

当然,EXISTS关键字可以与其他的查询条件一起使用

条件表达式与EXISTS关键字之间用AND或者OR来连接

 代码如下 复制代码


mysql> SELECT * FROM employee
    -> WHERE age>24 AND EXISTS
    -> (SELECT d_name FROM department WHERE d_id=1003);


提示
•EXISTS (subquery) 只返回 TRUE 或 FALSE,因此子查询中的 SELECT * 也可以是 SELECT 1 或其他,官方说法是实际执行时会忽略 SELECT 清单,因此没有区别。
•EXISTS 子查询的实际执行过程可能经过了优化而不是我们理解上的逐条对比,如果担忧效率问题,可进行实际检验以确定是否有效率问题。
•EXISTS 子查询往往也可以用条件表达式、其他子查询或者 JOIN 来替代,何种最优需要具体问题具体分析


带ANY关键字的子查询

ANY关键字表示满足其中任一条件

 

 代码如下 复制代码

mysql> SELECT * FROM employee
    -> WHERE d_id!=ANY
    -> (SELECT d_id FROM department);

4 rows in set (0.00 sec)

带ALL关键字的子查询
ALL关键字表示满足其中所有条件

 

 代码如下 复制代码
mysql> SELECT * FROM employee
    -> WHERE d_id>=ALL
    -> (SELECT d_id FROM department);

1 row in set (0.00 sec)暂时不明白这两条语句是什么意思,到时候再补上

 
UNION合并查询结果

MySQL UNION 用于把来自多个 SELECT 语句的结果组合到一个结果集合中。语法为:

SELECT column,... FROM table1
UNION [ALL]
SELECT column,... FROM table2
...
在多个 SELECT 语句中,对应的列应该具有相同的字段属性,且第一个 SELECT 语句中被使用的字段名称也被用于结果的字段名称。

UNION 与 UNION ALL 的区别
当使用 UNION 时,MySQL 会把结果集中重复的记录删掉,而使用 UNION ALL ,MySQL 会把所有的记录返回,且效率高于 UNION。

 代码如下 复制代码
mysql> SELECT d_id FROM employee
    -> UNION
    -> SELECT d_id FROM department;
+------+
| d_id |
+------+
| 1001 |
| 1002 |
| 1004 |
| 1003 |
+------+

4 rows in set (0.00 sec)合并比较好理解,也就是将多个查询的结果合并在一起,然后去除其中的重复记录

如果想保存重复记录可以使用UNION ALL语句

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Conseils pour utiliser i18n pour implémenter la commutation multilingue dans Vue Conseils pour utiliser i18n pour implémenter la commutation multilingue dans Vue Jun 25, 2023 am 09:33 AM

Avec le développement continu de l’internationalisation, de plus en plus de sites Web et d’applications doivent prendre en charge des fonctions de commutation multilingue. En tant que framework frontal populaire, Vue fournit un plug-in appelé i18n qui peut nous aider à réaliser une commutation multilingue. Cet article présentera les techniques courantes d'utilisation d'i18n pour réaliser une commutation multilingue dans Vue. Étape 1 : Installer le plug-in i18n Tout d'abord, nous devons utiliser npm ou Yarn pour installer le plug-in i18n. Entrez la commande suivante sur la ligne de commande : npminst

Que signifient les interfaces out et in ? Que signifient les interfaces out et in ? Sep 28, 2021 pm 04:39 PM

L'interface de sortie fait référence à l'interface de sortie et l'interface d'entrée fait référence à l'interface d'entrée. L'interface de sortie représente généralement l'interface de sortie de ligne de source audio, qui est utilisée pour connecter des charges, telles que des haut-parleurs, des écouteurs, etc., tandis que l'interface d'entrée représente généralement l'interface d'entrée de ligne de source audio, qui est utilisée pour connecter des lecteurs de CD, des appareils mobiles. téléphones, lecteurs MP3, ordinateurs, etc.

Regard vers l'U9 : la nouvelle supercar électrique préférée des Chinois Regard vers l'U9 : la nouvelle supercar électrique préférée des Chinois Oct 13, 2023 pm 03:37 PM

Poussés par l’ère de l’électrification des véhicules, les constructeurs automobiles chinois sont activement impliqués dans la production de supercars électriques. Récemment, Haopin, une marque électrique haut de gamme appartenant à GAC Aian, a lancé une supercar électrique appelée SSR. Auparavant, le Yangwang U9 de BYD a également reçu une large attention. Récemment, une vidéo a circulé sur Internet, prétendument montrant une vidéo de test du Yangwang U9. Dans la vidéo, un U9 roule à toute vitesse sur la piste. Étonnamment, les disques de frein du véhicule clignotent en orange vif, donnant l'impression qu'il participe aux 24 Heures du Mans. Il est particulièrement frappant de constater que les disques de frein des roues avant sont au moins deux fois plus brillants que ceux des roues arrière. Cependant, il est impossible de déterminer à partir de la vidéo si l'éclair lumineux est provoqué par les flammes produites par les disques de frein lors du freinage ou s'il s'agit de l'effet lumineux du véhicule. échappement

Comment résoudre le problème du clavier numérique Win7 en passant à 4 Comment résoudre le problème du clavier numérique Win7 en passant à 4 Jul 14, 2023 am 08:49 AM

Lorsque certains clients d'ordinateurs portables Win7 utilisent le clavier numérique, ils rencontrent la raison pour laquelle ils tapent u, mais cela devient 4. que se passe-t-il? En fait, c’est parce que votre ordinateur portable a le clavier intégré aux touches alphabétiques. Vous pouvez résoudre ce problème en fermant simplement le clavier. Les étapes spécifiques sont les suivantes : La conversion de clé FN+nunlock peut saisir des lettres anglaises normalement. Cette méthode peut également être utilisée si le client rencontre une pression sur I pour passer à 5. Comment résoudre le problème selon lequel le clavier numérique Win7 devient 4:1 Pour une meilleure commodité, l'ordinateur portable n'a pas de petite zone de clavier. Il existe donc des touches qui définissent la fonction du pavé numérique. Vous pouvez utiliser la touche FN+nunlock pour convertir. Certains doivent utiliser Shift+numlock pour saisir l'anglais ou les données. 2. Pavé numérique-

Introduction aux fonctions Python : fonctions et exemples d'utilisation de n'importe quelle fonction Introduction aux fonctions Python : fonctions et exemples d'utilisation de n'importe quelle fonction Nov 04, 2023 pm 02:14 PM

Introduction aux fonctions Python : Présentation des fonctions et exemples d'utilisation de n'importe quelle fonction : En Python, any() est une fonction intégrée utilisée pour déterminer si au moins un élément d'un objet itérable est vrai. Renvoie True si un élément de l'objet itéré est vrai ; sinon, renvoie False. Syntaxe d'utilisation : any (itérable) Paramètres : itérable : objets itérables, tels que des listes, des tuples, des ensembles, etc. Valeur de retour : vrai s'il y a au moins un élément dans l'objet itérable

Liste des frais de traitement pour la plateforme de trading OKX Liste des frais de traitement pour la plateforme de trading OKX Feb 15, 2025 pm 03:09 PM

La plateforme de trading OKX offre une variété de tarifs, y compris les frais de transaction, les frais de retrait et les frais de financement. Pour les transactions ponctuelles, les frais de transaction varient en fonction du volume des transactions et du niveau VIP et adoptent le "modèle de marché de marché", c'est-à-dire que le marché facture des frais de traitement inférieurs pour chaque transaction. De plus, OKX propose également une variété de contrats à terme, y compris des contrats standard de devises, des contrats USDT et des contrats de livraison, et la structure des frais de chaque contrat est également différente.

Comment utiliser la fonction File.Exists en C# pour déterminer si un fichier existe Comment utiliser la fonction File.Exists en C# pour déterminer si un fichier existe Nov 18, 2023 am 11:25 AM

Comment utiliser la fonction File.Exists en C# pour déterminer si un fichier existe. Dans les opérations sur les fichiers C#, déterminer si un fichier existe est une exigence fonctionnelle de base. La fonction File.Exists est une méthode en C# utilisée pour déterminer si un fichier existe. Cet article explique comment utiliser la fonction File.Exists en C# pour déterminer si un fichier existe et fournit des exemples de code spécifiques. Référencer l'espace de noms Avant de commencer à écrire du code, vous devez d'abord référencer l'espace de noms System.IO, qui

Quelle devise est la monnaie virtuelle? Où l'acheter? Quelle devise est la monnaie virtuelle? Où l'acheter? Mar 04, 2025 pm 05:42 PM

L'article présente que la monnaie virtuelle est une forme de devise numérique ou virtuelle qui repose sur la cryptographie et les transactions via des réseaux peer-to-peer, et répertorie les monnaies communes telles que Bitcoin. Il est généralement disponible sur les échanges de crypto-monnaie tels que Coinbase, et tous les avantages et inconvénients de chaque transaction. Il souligne que l'achat de monnaie virtuelle est élevé, le prix fluctue considérablement et est sujet à la fraude et au piratage.

See all articles