亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

mysql子查詢(單行子查詢,多行子查詢,多列子查詢)

瀏覽:5日期:2023-08-02 20:12:38
目錄創建初始表ANY SOME 關鍵字的子查詢ALL 關鍵字帶 IN 關鍵字 的子查詢NOT IN連接查詢多列子查詢帶比較運算符的子查詢帶EXISTS 關鍵字的子查詢

子查詢使用規則:

子查詢放在圓括號中子查詢放在比較條件右邊(非強制)子查詢中不需要ORDER BY 子句在單行子查詢中使用單行運算符,在多行子查詢中用多行運算符。單行運算符:子查詢結果只有一個:< > = <= >= !=多行子查詢:子查詢結果是單列多行:in , any,all多列子查詢:子查詢為多列,一定要在FROM后作為表,且一定要取別名,否則無法訪問這張表中的字段。創建初始表CREATE TABLE tbl1 (num1 INT NOT NULL);CREATE TABLE tbl2 (num2 INT NOT NULL);INSERT INTO tbl1 VALUES(1),(5),(13),(27);INSERT INTO tbl2 VALUES(6),(14),(11),(20);ANY SOME 關鍵字的子查詢

返回tbl2的所有num2列,將tbl1中的num值與之進行比較,只要大于num2的任意一值,即為符合條件的結果。

SELECT num1 FROM tbl1 WHERE num1 > SOME(SELECT num2 FROM tbl2);SELECT num1 FROM tbl1 WHERE num1 > ANY (SELECT num2 FROM tbl2);ALL 關鍵字SELECT num1 FROM tbl1 WHERE num1 > ALL (SELECT num2 FROM tbl2);

新建一個orderitems表

CREATE TABLE orderitems(o_num INT NOT NULL,o_item INT NOT NULL,f_id CHAR(10) NOT NULL,quantity INT NOT NULL,item_price DECIMAL(8,2) NOT NULL,PRIMARY KEY(o_num,o_item));

填入數據

INSERT INTO orderitems(o_num,o_item,f_id,quantity,item_price)VALUES(3001,1,'a1',10,5.2),(3001,2,'b2',3,7.6),(3001,3,'bs1',5,11.2),(3001,4,'bs2',15,9.2),(3002,1,'b3',2,20.0),(3003,1,'c0',100,10),(3004,1,'o2',50,2.50),(3005,1,'c0',5,10),(3005,2,'b1',10,8.99),(3005,3,'a2',10,2.2),(3005,4,'m1',5,14.99);帶 IN 關鍵字 的子查詢

#在orderitem表中查詢f_id為c0 的訂單號,并根據訂單號查詢具有訂單號的客戶c_id,SQL語句如下:

SELECT c_id FROM ordersWHERE o_num IN(SELECT o_num FROM orderitems WHERE f_id = 'c0');

NOT INSELECT c_id FROM ordersWHERE o_num NOT IN(SELECT o_num FROM orderitems WHERE f_id = 'c0');

連接查詢

(也可以解決這個問題,但有空值,但子查詢更容易閱讀和編寫)

SELECT c_id FROM orderitems left JOIN ordersON orders.o_num = orderitems.o_num AND orderitems.f_id = 'c0';

多列子查詢

在 orderitems 表中查詢 f_id 為 c0 的訂單號的所有信息,并根據訂單號查詢具有訂單號的客戶的所有信息,SQL語句如下:

SELECT * FROM orders ord ,(SELECT * FROM orderitems AS o WHERE f_id&#61;&#39;c0&#39;) ite WHERE ord.o_num&#61;ite.o_num ;

*注意:子查詢結果為多列,一定在FROM后做為表,且一定要取別名,否則無法訪問這張表中的字段。

帶比較運算符的子查詢

#在suppliers表中查詢s_city等于‘tianjin’的供應商s_id,然后在fruits表中,查詢所有非該供應商供應的水果種類名稱。

SELECT s_id,f_name FROM fruits fWHERE f.s_id !=(SELECT s1.s_id FROM suppliers AS s1 WHERE s1.s_city = 'tianjin');帶EXISTS 關鍵字的子查詢

EXISTS關鍵字后是任意一個子查詢:

若至少返回一行,則結果為True,此時外層將進行查詢。

若沒有返回任何行,則返回的結果為false,此時外層語句將不進行查詢。NOT EXISTS 和 EXISTS 的使用方法相同,返回的結果相反。查詢suppliers中是否存在s_id 的供應商,若存在,則查詢fruits表中所有記錄:

SELECT * FROM fruits WHERE EXISTS (SELECT s.s_id FROM suppliers AS s WHERE s.s_id = 107);

返回結果:

EXISTS也可以和條件表達式一起使用:

例:查詢suppliers中是否存在s_id 的供應商,若存在,則查詢fruits表中f_price>10.20的記錄:

SELECT * FROM fruits WHERE f_price >10.20 AND EXISTS (SELECT s.s_id FROM suppliers AS s WHERE s.s_id = 107);

到此這篇關于mysql子查詢(單行子查詢,多行子查詢,多列子查詢)的文章就介紹到這了,更多相關MySQL子查詢 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 免费特级片| 亚洲电影一区二区三区 | 1024国产精品视频观看 | 日韩美女毛片 | 久草在线观看首页 | 五月婷婷网| 亚洲高清免费视频 | 欧美在线一区二区三区 | 高清一级做a爱过程免费视频 | 欧美中文一区 | 毛片视频免费网站 | 国产乱理伦片a级在线观看 国产乱理伦片在线观看 | 精品视频999| 夜夜拍夜夜爽夜夜拍拍拍 | 久久er这里都是精品23 | 日韩成人免费视频播放 | 免费观看a级毛片 | 免费毛片a线观看 | www.欧美精品| 综合精品一区 | 911精品国产91久久久久 | 免费人成黄页在线观看视频国产 | zsvdy午夜 | 72种姿势欧美久久久久大黄蕉 | 99久久综合精品国产 | 一区不卡视频 | 亚洲狼人综合干 | 国产成人亚洲精品91专区手机 | 午夜国产亚洲精品一区 | 日韩国产精品99久久久久久 | 激情综合网婷婷 | 午夜色大片在线观看 | 国产一区二区在线播放 | 亚洲黄色三级网站 | 国产精品国内免费一区二区三区 | 在线观看国产一区二区三区99 | 日韩免费在线视频 | 国产剧情网站 | 欧美视频一区二区三区在线观看 | 在线播放国产精品 | 日本人一级大毛片 |