MySQL帶IN關鍵字的子查詢
子查詢
是指一個查詢語句,巢狀在另一個查詢語句內部的查詢
可以巢狀在一個SELECT、SELECT……INTO語句、INSERT……INTO等語句中
在執行查詢語句時,首先,會執行子查詢中的語句,然後,將返回的結果作為外層查詢的過濾條件,在子查詢中通常可以使用IN、EXISTS、ANY、ALL操作符
帶IN關鍵字的子查詢
使用IN關鍵字,進行子查詢時,內層查詢語句返回一個數據列,這個資料列中的值,將供外層查詢語句進行比較操作
查詢存在年齡為20歲的員工,的部門
可以看出,網路部和媒體部都有年齡為20歲的員工
在查詢的過程中,首先,會執行內層子查詢,得到年齡為20歲的員工的部門id,然後,根據部門id與外層查詢的比較條件,最終,得到符合條件的資料
SELECT語句中,可以使用NOT IN關鍵字,作用正好與IN相反
查詢不存在年齡為20歲的員工,的部門
可以看出,研發部和人事部,不存在年齡為20歲的員工
使用NOT IN關鍵字與使用IN關鍵字,查詢的結果正好相反
相關推薦
處理mysql使用in關鍵字子查詢1317錯誤
Error 1317 mysql query execution interrupted 訊息內容:查詢執行被中斷(資料庫直接掛起) 1. 現象: (1)在PHP程式中使用子查詢語句,導致Mysql自動“掛起”,即資料庫“卡死”,程式不能正常執行 (2
MySQL帶IN關鍵字的子查詢
子查詢 是指一個查詢語句,巢狀在另一個查詢語句內部的查詢 可以巢狀在一個SELECT、SELECT……INTO語句、INSERT……INTO等語句中 在執行查詢語句時,首先,會執行子查詢中的語句,然後,將返回的結果作為外層查詢的過濾條件,在子查詢中通常可以
mysql not in null 子查詢問題
今天寫了一個sql: SELECT * from tableA a where a.mobile not in (select b.mobile from tableB b); 在本地的一個測試資料庫執行能查出資料,然後放外網查詢就沒有資料。 經過確定,外網是應該查出資料的,
MySQL帶ALL關鍵字的子查詢
ALL關鍵字 ALL關鍵字與ANY類似 ALL關鍵字的子查詢,返回的結果,需要同時滿足所有內層查詢條件 使用ALL關鍵字的子查詢,查詢滿足條件的部門 執行過程,首先,子查詢會將employee表中的所有did查詢出來,分別為1、1、2、4,然後,將d
MySQL帶ANY關鍵字的子查詢
ANY關鍵字 表示滿足其中任意一個條件 它允許建立一個表示式,對子查詢的返回值列表,進行比較,只要滿足內層子查詢中的,任意一個比較條件,就返回一個結果作為外層查詢條件 使用ANY關鍵字的子查詢,查詢滿足條件的部門 執行過程中,首先,子查詢將emplo
mysql in型子查詢陷阱
秒級 tab lai sql 一對一 語句 lec 掃描 主鍵 現在有兩個表,table1和table2,table1有1千萬數據(id 主鍵索引),table2有三條數據(uid字段 3,5,7); select * from table1 where id in
mysql 數據操作 子查詢 帶比較運算符的子查詢
mys 比較運算 ack 員工 pre family employ 思路 weight 帶比較運算符的子查詢 #比較運算符:=、!=、>、>=、<、<=、<> #查詢大於所有人平均年齡的員工名與年齡思路 先拿到所有人的平均年齡
in型子查詢陷阱
們的 goods inner cnblogs 目的 針對 欄目 exp com in 型子查詢引出的陷阱 select goods_id from goods where cat_id in (1,2,3) 直接用id,不包含子查詢,不會中陷阱 題: 在ecshop商城表中
mysql 數據操作 子查詢 介紹
!= 結果 span 子查詢 tro 運算符 mysql sql 嵌套 子查詢就是: 把一條sql語句放在一個括號裏,當做另外一條sql語句查詢條件使用 拿到這個結果以後 當做下一個sql語句查詢條件mysql 數據操作 子查詢 #1:子查詢是將一個查詢語句嵌
mysql在把子查詢結果作為刪除表中資料的條件,mysql不允許在子查詢的同時刪除原表資料
** 目標表和原表一致 MYSQL不支援如此操作 資料庫不能邊查詢邊刪除 ** delete from push_msg_overview where id in ( select id from push_msg_overview where pus
MySQL使用LIMIT關鍵字限制查詢結果的數量
1、LIMIT關鍵字的使用 查詢資料時,可能會查詢出很多的記錄。而使用者需要的記錄可能只是很少的一部分。這樣就需要來限制查詢結果的數量。LIMIT是MySQL中的一個特殊關鍵字。LIMIT子句可以對查詢結果的記錄條數進行限定,控制它輸出的行數。 語法格式1: LIMIT m; m
mysql 的delete from 子查詢限制
1.使用mysql進行delete from操作時,若子查詢的 FROM 字句和更新/刪除物件使用同一張表,會出現錯誤。 mysql> DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 ); ERROR 1093 (HY000):
MySQL的bug:子查詢中使用rand(),上層查詢中rand()的值被重算
在使用mysql的過程中,發現了一個神奇的bug。 mysql語句如下: select random_val from (select floor(rand()*10) as random_val from Test) b where b.random_val
關於mysql刪除語句的子查詢問題
今天要刪除letterrelation表中無效的資料,於是找出無效的letterrelationId select letterRelationId from letterrelation where letterRelationId not in(sel
in 型子查詢引出的陷阱
在開發商城的時候,核心有一個goods表和category表,category中有多級分類。假設有一個父分類為6,這個父分類中沒有商品,商品都在子分類中,那麼要查詢分類為6的商品,如果我們使用in型子查詢,會使用下面的sql。 select * from
mysql update in 巢狀子查詢更新
更新該句 update punchcard_tbl set percheck=3 where id in (select id punchcard where id=1) 在 MySQL 命令列工具中傳回:ERROR 1093 (HY000): You can't spec
如何讓in/exists 子查詢(半連線)作為驅動表?
一哥們問我,怎麼才能讓子查詢作為驅動表? SQL如下: select rowid rid from its_car_pass7 v where 1 = 1 and pass_datetime >= to_date('2013-07-
在sql語句中in關鍵字提示查詢效能
這幾天一個模組即將結束,便開始進行一些優化,以提升效能。發現一個sql語句的查詢速度是6秒,這明顯讓使用者等待過長。 語句其實挺簡單的,上學的時候經常這麼寫,而且記得好多教科書中也是這麼寫的。 簡要形式: SELECT t1.field1,t1.f
mysql union all與子查詢結合效率對比
SELECT * FROM baidu_day_2014_1 WHERE account = 'xxx' UNION ALL SELECT * FROM baidu_day_2014_2 WHERE account = 'xxx' UNION ALL SELECT *
關於所使用的spark版本中的spark sql不支援exists和in等子查詢語句的解決方案記錄
stackoverflow上一篇很好的問題解答解決方法: A table holds the rows that make some predicate (statement parameterized by column names) true: The DBA