1. 程式人生 > >MySQL帶IN關鍵字的子查詢

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

MySQLIN關鍵字查詢

子查詢 是指一個查詢語句,巢狀在另一個查詢語句內部的查詢 可以巢狀在一個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); 在本地的一個測試資料庫執行能查出資料,然後放外網查詢就沒有資料。 經過確定,外網是應該查出資料的,

MySQLALL關鍵字查詢

ALL關鍵字 ALL關鍵字與ANY類似 ALL關鍵字的子查詢,返回的結果,需要同時滿足所有內層查詢條件 使用ALL關鍵字的子查詢,查詢滿足條件的部門 執行過程,首先,子查詢會將employee表中的所有did查詢出來,分別為1、1、2、4,然後,將d

MySQLANY關鍵字查詢

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