msyql中子查询IN,EXISTS,ANY,ALL,UNION介绍
在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的记录 删除 delete from articles where id in (1,2,3); //删除id=1,id=2,id=3的记录 |
此处首先查询出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来连接
代码如下 | 复制代码 |
|
提示
•EXISTS (subquery) 只返回 TRUE 或 FALSE,因此子查询中的 SELECT * 也可以是 SELECT 1 或其他,官方说法是实际执行时会忽略 SELECT 清单,因此没有区别。
•EXISTS 子查询的实际执行过程可能经过了优化而不是我们理解上的逐条对比,如果担忧效率问题,可进行实际检验以确定是否有效率问题。
•EXISTS 子查询往往也可以用条件表达式、其他子查询或者 JOIN 来替代,何种最优需要具体问题具体分析
带ANY关键字的子查询
ANY关键字表示满足其中任一条件
代码如下 | 复制代码 |
mysql> SELECT * FROM employee 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语句

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Mit der kontinuierlichen Weiterentwicklung der Internationalisierung müssen immer mehr Websites und Anwendungen mehrsprachige Umschaltfunktionen unterstützen. Als beliebtes Front-End-Framework bietet Vue ein Plug-In namens i18n, das uns bei der Umschaltung mehrerer Sprachen helfen kann. In diesem Artikel werden gängige Techniken zur Verwendung von i18n zur Implementierung der Mehrsprachenumschaltung in Vue vorgestellt. Schritt 1: Installieren Sie das i18n-Plugin. Zuerst müssen wir das i18n-Plugin mit npm oder Yarn installieren. Geben Sie in der Befehlszeile den folgenden Befehl ein: npminst

Die Out-Schnittstelle bezieht sich auf die Ausgabeschnittstelle und die In-Schnittstelle bezieht sich auf die Eingabeschnittstelle. Die Out-Schnittstelle stellt im Allgemeinen die Line-Ausgangsschnittstelle der Audioquelle dar, die zum Anschließen von Lasten wie Lautsprechern, Kopfhörern usw. verwendet wird, während die In-Schnittstelle im Allgemeinen die Line-Eingangsschnittstelle der Audioquelle darstellt, die zum Anschluss von CD-Playern und Mobilgeräten verwendet wird Telefone, MP3-Player, Computer usw.

Angetrieben durch die Ära der Automobilelektrifizierung sind Chinas inländische Automobilhersteller aktiv an der Produktion elektrischer Supersportwagen beteiligt. Kürzlich brachte Haopin, eine High-End-Elektromarke von GAC Aian, einen Elektro-Supersportwagen namens SSR auf den Markt. Zuvor erregte auch der Yangwang U9 große Aufmerksamkeit im Internet Testvideo. Im Video rast ein U9 über die Strecke. Überraschenderweise blinken die Bremsscheiben des Fahrzeugs leuchtend orange, was den Eindruck erweckt, als würde es an den 24 Stunden von Le Mans teilnehmen. Besonders auffällig ist die Tatsache, dass die Bremsscheiben an den Vorderrädern mindestens doppelt so hell sind wie die an den Hinterrädern. Allerdings konnte anhand des Videos nicht festgestellt werden, ob das blinkende Licht durch die Flammen verursacht wurde, die die Bremsscheiben beim Bremsen erzeugten, oder ob es sich um den Lichteffekt des Fahrzeugs handelte. Auspuff

Wenn einige Win7-Laptop-Kunden die numerische Tastatur verwenden, stoßen sie auf den Grund, warum sie u eingeben, aber daraus wird 4. was passiert? Das liegt tatsächlich daran, dass die Tastatur Ihres Laptops in die Buchstabentasten integriert ist. Sie können dieses Problem beheben, indem Sie einfach die Tastatur schließen. Die spezifischen Schritte sind wie folgt: Mit der FN+nunlock-Tastenkonvertierung können englische Buchstaben normal eingegeben werden. Diese Methode kann auch verwendet werden, wenn der Kunde auf I drückt, um zu 5 zu wechseln. So lösen Sie das Problem, dass die numerische Tastatur von Win7 4:1 wird. Aus Gründen der Bequemlichkeit verfügt der Laptop nicht über einen kleinen Tastaturbereich. Daher gibt es Tasten, die die Funktion des Ziffernblocks definieren. Sie können zum Konvertieren die Taste FN+nunlock verwenden. Einige müssen Umschalt+Numlock verwenden, um Englisch oder Daten einzugeben. 2. Nummernblock-

Einführung in Python-Funktionen: Übersicht über Funktionen und Anwendungsbeispiele für beliebige Funktionen: In Python ist „any()“ eine integrierte Funktion, die verwendet wird, um zu bestimmen, ob mindestens ein Element in einem iterierbaren Objekt wahr ist. Gibt True zurück, wenn ein Element im iterierten Objekt wahr ist; andernfalls wird False zurückgegeben. Verwendungssyntax: beliebig (iterierbar) Parameter: iterierbar: iterierbare Objekte wie Listen, Tupel, Mengen usw. Rückgabewert: true, wenn das iterierbare Objekt mindestens ein Element enthält

Die OKX -Handelsplattform bietet eine Vielzahl von Zinssätzen, einschließlich Transaktionsgebühren, Auszahlungsgebühren und Finanzierungsgebühren. Bei Spot -Transaktionen variieren die Transaktionsgebühren je nach Transaktionsvolumen und VIP -Ebene und übernehmen das "Market Maker -Modell", dh der Markt, für jede Transaktion eine niedrigere Handhabungsgebühr. Darüber hinaus bietet OKX eine Vielzahl von Futures -Verträgen an, darunter Währungsstandardverträge, USDT -Verträge und Lieferverträge, und die Gebührenstruktur jedes Vertrags ist ebenfalls unterschiedlich.

So verwenden Sie die Funktion „File.Exists“ in C#, um festzustellen, ob eine Datei vorhanden ist. Bei C#-Dateioperationen ist die Feststellung, ob eine Datei vorhanden ist, eine grundlegende Funktionsanforderung. Die File.Exists-Funktion ist eine Methode in C#, mit der ermittelt wird, ob eine Datei vorhanden ist. In diesem Artikel wird erläutert, wie Sie die Funktion „File.Exists“ in C# verwenden, um festzustellen, ob eine Datei vorhanden ist, und es werden spezifische Codebeispiele bereitgestellt. Referenzieren Sie den Namespace. Bevor Sie mit dem Schreiben von Code beginnen, müssen Sie zunächst auf den System.IO-Namespace verweisen

Der Artikel führt vor, dass die virtuelle Währung ein digitales oder virtuelles Währungsformular ist, das auf Kryptographie beruht und über Peer-to-Peer-Netzwerke gehandelt wird und gemeinsame Währungen wie Bitcoin auflistet. Es ist normalerweise an Kryptowährungsbörsen wie Coinbase und allen Vor- und Nachteilen jeder Transaktion erhältlich. Es wird betont, dass der Kauf von virtueller Währung hoch ist, die Preisträger stark und anfällig für Betrug und Hacking ist, um vor dem Investieren ausreichende Forschungen durchzuführen und nur in Mittel zu investieren, die Verluste tragen können.
