1. 程式人生 > >sql 子查詢(mysql)

sql 子查詢(mysql)

子查詢:一個查詢巢狀在另一個查詢當中;又叫內部查詢。

子查詢 可以分為:
單行單列(就是一個值)
單行多列(就是有一行,這一行有很多不同列資料)
多行單列(同一列不同的資料)
多行多列(可以說就是一張表了吧)

我們先來看單行單列的子查詢:

SELECT * FROM table1 WHERE id = (SELECT id FROM table2 LIMIT 1)

我們首先看前面,查詢table1表資料,但是where後面條件為id應該等於SELECT id FROM table2 LIMIT 1 這一條資料的查詢結果,這條資料就是返回一個id值,返回單行單列的id值,如果這個id等於1,那麼就返回table1中id等於1的那一行資料。

我們先來看單行多列的子查詢:

SELECT * FROM table1 WHERE (name1,age1) = (SELECT name1,age1 FROM table2 WHERE id=1)

以上sql命令。我們查詢table1表資料,但是條件為name1和age1必須要等於

SELECT name1,age1 FROM table2 WHERE id=1

所查詢出來的值,這一句所查詢出來的值是一行多列,因為有name1和age1所以就是多列了,因為id為主鍵 ,所以就是一行了 ,如果查詢出來 的資料 和之前table1中的name1和age1都沒有匹配的話,那麼整個子查詢查詢出來的值都將為空。
如果有則會查詢出來。

多行單列子查詢:

SELECT * FROM table1 WHERE id IN(SELECT id FROM table2 )

以上sql命令查詢table1的資料,條件為id必須在

SELECT id FROM table2

所查詢到的所有資料中的其中之一。所 查詢尋出來的是多行一列的資料。

多行多列子查詢:

SELECT * FROM table1 WHERE (name1,age1) IN (SELECT name1,age1 FROM table2)

以上命令查詢來自table1表的資料,但是條件為,table1表中的name1和age1兩個值必須在

SELECT
name1,age1 FROM table2

所查詢出來的資料中有匹配。

相關推薦

sql 查詢(mysql)

子查詢:一個查詢巢狀在另一個查詢當中;又叫內部查詢。 子查詢 可以分為: 單行單列(就是一個值) 單行多列(就是有一行,這一行有很多不同列資料) 多行單列(同一列不同的資料) 多行多列(可以說就是一張表了吧) 我們先來看單行單列的子查詢: SE

mysql buglist上關於SQL查詢注入的郵件列表

[11 Aug 2016 15:38] Sinisa Milivojevic Hi! You are using rand() in both a select list and in the group list. That can create huge runtime

mysql 複雜sql查詢的例項

在我們的實際專案中,有時候需要寫一下資料彙總和查詢,哪麼子查詢就必不可少。 比如我現在有三張表: lch_resource_attribute,idx_lch_resource_category,lch_resource_games 那麼我現在要查詢某個應用的子分類的話,用

sql查詢

編寫 min style side lower any 編號 示例 操作 子查詢就是指的在一個完整的查詢語句之中,嵌套若幹個不同功能的小查詢,從而一起完成復雜查詢的一種編寫形式,為了讓讀者更加清楚子查詢的概念。子查詢返回結果子查詢可以返回的數據類型一共分為四種:單行單列:返

SQL 查詢

單個 調用 不依賴 相關子查詢 date 1.2 like p s tid SQL支持在查詢中編寫查詢,或者嵌套其他查詢。最外層查詢的結果集會返回給調用者,稱為外部查詢。內部查詢的結果是提供給外部查詢使用的,也成為子查詢。 子查詢可以分為獨立子查詢和相關子查詢兩類。獨立子

【沫沫金】Sql查詢Not In 無結果原因

空值 blog mar 執行 sel ges 期望 ima 數值 背景源碼 select * from ITEM where item_id not in (select parent_item_id from ITEM ) 查詢效果 無任何匹配值。。。 原因 not in

sql查詢 嵌套SELECT實用語句

exp ring union res pda als 老師 效果 存在 嵌套SELECT語句也叫子查詢,一個 SELECT 語句的查詢結果能夠作為另一個語句的輸入值。子查詢不但能夠出現在Where子句中,也能夠出現在from子句中,作為一個臨時表使用,也能夠出現在selec

sql查詢 order by失效問題

一、問題描述  三表聯合查詢  按主表的時間倒敘並分頁   下面sql語句 ORDER BY失效 ,如果把 ORDER BY  放在最後 比如有20條資料 第一頁會是10 -1 第二頁是20-11  分頁不正確   查詢資料發現:在my

SQL查詢、相關子查詢

子查詢 子查詢是巢狀在其他查詢中的查詢。子查詢總是從內向外處理。 注意: 1、在使用子查詢時儘量把子查詢分解為多行並且適當進行縮排,能極大的簡化子查詢的使用。 2、不能巢狀太多的子查詢,這樣會降低效能。 3、在WHERE子句中使用子查詢,應該保證SELECT語句具有

使用SQL語句查詢Mysql日誌存放位置

mysql > show variables like "slow_query_log_file"; mysql > show variables like "log_error"; mysql>show variables like 'log_%'

My SQL 查詢

 1.使用IN關鍵字的子查詢 例:查詢遊戲型別是“棋牌類”的遊戲的分數資訊     1.1過濾掉遊戲分數表中未包含遊戲型別的玩家     1.2思路一:採用連線查詢     1.3思路二:分兩步進行,

sql查詢中引用無效物件名

select AA.GoodsID from (  select A.GoodsID,A.SerNum from  (select * from VStock where SerNum is not null) A   left join InStorage_Record 

sql查詢用法

 在資料庫的查詢過程中,可能經常要用到子查詢的情況,用得較多的可能是巢狀子查詢,最近查資料時發現還有另外一種方法,就是在from子句中使用子查詢,也可以實現相同的效果,下面通過一個例項來講講這兩種方法的使用。 問題:查

圖解SQL查詢例項

1 建立示例表 先建立示例表; ------------------------- -- Create Customers table ------------------------- CREATE TABLE Customers ( cust_id cha

sql 查詢及基本語句 挺全的收錄

一、SQL子查詢語句      1、單行子查詢        select ename,deptno,sal        from emp        where deptno=(select deptno from dept where loc='NEW YORK');

SQL查詢總結

在一個SQL語句中巢狀另一個SQL語句成為子查詢。 當一個問題無法通過一部解決時可考慮使用子查詢,一個出現在SELECT語句的FROM子句中的子查詢被稱為"內嵌檢視";一個出現在SELECT語句的WHERE子句中的子查詢被稱為"內嵌子查詢",一個子查詢能夠包含另一個子查詢,

sql 查詢 踩坑

mil user 題解 數據 等等 單獨 語句 事情 acc   某個月黑風高的夜,手機的嗡嗡聲提示收到一條短信,半睡半醒間打開手機查看,一條日誌告警的信息使我睡意全無。   掀被、起床、喚醒電腦,開始了一個程序員的填坑日常。   有一個sql: selec

SQL Server溫故系列(3):SQL 查詢 & 公用表表達式 CTE

1、子查詢 Subqueries 1.1、單行子查詢 1.2、多行子查詢 1.3、相關子查詢 1.4、巢狀子查詢 1.5、子查詢小結及效能問題 2、公用表表達式 CTE 2.1、普通公用表表達式 2.2、遞迴公用表表達式 3、本文小結 1、子查詢 Subqueries 子查詢是一個巢狀在 SELE

MySQL學習——SQL查詢語句(連接查詢&查詢)(三)

例如 必須 創建 clas 在一起 另一個 記錄 any 操作 一:連接查詢:   連接查詢是將倆個或者倆個以上的表按照某個條件連接起來,從中選擇需要的數據,連接查詢同時查詢倆個或者倆個以上的表時使用,當不同的表中存在表示相同意義的字段時,可以通過該字段來連接這幾個表,例如

警惕 MySql 更新 sql 的 WHERE 從句中的 IN() 查詢時出現的效能陷阱

mer_stage 表有 216423 條記錄,DDL:CREATE TABLE `mer_stage` ( `STAGE_ID` int(11) NOT NULL AUTO_INCREMENT, `MER_ID` int(11) NOT NULL, `MER_C