MySQL嵌套查詢實(shí)現(xiàn)子查詢的方法
一個(gè)查詢語(yǔ)句嵌套在另一個(gè)查詢語(yǔ)句內(nèi)部的查詢
常用操作符:ANY(SOME), ALL, IN, EXISTS
比較運(yùn)算符:>, >=, <, <=, != 等
創(chuàng)建兩個(gè)表,表明分別是tb1,tb2,并向其各插入了數(shù)據(jù)。
1.帶ANY(SOME)關(guān)鍵字的子查詢
這里any和some是同義詞,都是表示滿足任一條件。
例:查詢tb1中的所有數(shù)據(jù),只要大于tb2表中數(shù)據(jù)的任意值,既符合查詢條件。
select num1 from tb1 where num1>ANY(select num2 from tb2);
2.帶ALL關(guān)鍵字的子查詢
例:查詢tb1中的所有數(shù)據(jù),返回其中比tb2表中任何值都大的數(shù)據(jù)。
select num1 from tb1 where num1>ALL(select num2 from tb2);
3.帶EXISTS關(guān)鍵字的子查詢
例1:查詢fruits表中name字段下是否有apple,若有則查詢fruits表中的記錄,否則不查詢。
select * from fruits where EXISTS(select name from fruits where name='apple');
例2:查詢tb1表中是否存在num1=13的記錄,若存在,則查詢fruits表中price大于6.00的記錄。
select * from fruits where price>6.00 and EXISTS (select num1 from tb1 where num1=13);
相反,可以使用 not exists 查詢不存在的,用法相同。
4.帶IN關(guān)鍵字的子查詢
表示查詢結(jié)果在后面子查詢的范圍之中
例如:查詢tb1表中的num1字段下的數(shù)據(jù)作為數(shù)據(jù)列,fruits表中id字段下的數(shù)據(jù)與其進(jìn)行比較,返回符合條件的記錄。
select * from fruits where id IN (select num1 from tb1);
5.帶比較運(yùn)算符的子查詢
select * from 表名 where 字段名 > (select ······);
到此這篇關(guān)于MySQL嵌套查詢實(shí)現(xiàn)子查詢的方法的文章就介紹到這了,更多相關(guān)MySQL 子查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL重啟之后無(wú)法寫(xiě)入數(shù)據(jù)的問(wèn)題排查及解決
客戶在給系統(tǒng)打補(bǔ)丁之后需要重啟服務(wù)器,數(shù)據(jù)庫(kù)在重啟之后,read_only 的設(shè)置與標(biāo)準(zhǔn)配置 文件中不一致,導(dǎo)致主庫(kù)在啟動(dòng)之后無(wú)法按照預(yù)期寫(xiě)入,所以本文給大家介紹了MySQL重啟之后無(wú)法寫(xiě)入數(shù)據(jù)的問(wèn)題排查及解決,需要的朋友可以參考下2024-05-05

SQLyog錯(cuò)誤號(hào)碼2058最新解決辦法

MySQL忘記密碼恢復(fù)密碼的實(shí)現(xiàn)方法

MySQL通過(guò)DQL實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的基本查詢

通用SQL存儲(chǔ)過(guò)程分頁(yè)以及asp.net后臺(tái)調(diào)用的方法

騰訊面試:一條SQL語(yǔ)句執(zhí)行得很慢的原因有哪些?---不看后悔系列(推薦)