10 使用子查詢 SQL

2022-04-29 03:30:07 字數 1157 閱讀 1562

利用子查詢進行過濾

普通查詢:

select

order_num

from

orderitems

where prod_id =

'rgan01

';

輸出▼

order_num

-----------

20007

20008

select

cust_id

from

orders

where order_num in (20007,20008);

輸出▼

cust_id

----------

1000000004

1000000005

利用子查詢:

select

cust_id

from

orders

where order_num in (

select

order_num

from

orderitems

where prod_id =

'rgan01

');

輸出▼

cust_id

----------

1000000004

1000000005

分析▼在select語句中,子查詢總是從內向外處理。在處理上面的select語句時,dbms實際上執行了兩個操作。

首先,它執行下面的查詢:

select order_num from orderitems where prod_id=

'rgan01

'

此查詢返回兩個訂單號:20007和20008。然後,這兩個值以in操作符要求的逗號分隔的格式傳遞給外部查詢的where子句。外部查詢變成:

select cust_id from orders where order_num in (20007,20008)

包含子查詢的select語句難以閱讀和除錯,它們在較為複雜時更是如此。如上所示,把子查詢分解為多行並進行適當的縮排,能極大地簡

化子查詢的使用。

SQL 使用子查詢

sql還允許建立子查詢,巢狀再其他查詢中的查詢。下面舉幾個栗子來理解一下 現在結合1 2這兩個查詢,把第乙個查詢 返回訂單號的那乙個 變為子查詢 select cust id from orders where order num in select order num from orderitem...

SQL多條件查詢子查詢SQL多條件查詢子查詢

多條件搜尋時where 1 1並不高效,如果使用這種方法,在資料庫中會做全表查詢 對每行資料都進行掃瞄比對 會無法使用索引等優化查詢的策略,建立的索引會暫時失效。case函式 case必須和end一起使用,下接when then select 數學成績 case when math 100 then...

mysql sql 子查詢語句 SQL子查詢

子查詢或內部查詢或巢狀查詢在另乙個sql查詢的查詢和嵌入式where子句中。子查詢用於返回將被用於在主查詢作為條件的資料,以進一步限制要檢索的資料。子查詢可以在select,insert,update使用,而且隨著運算子如delete語句 in,between 等.這裡有一些規則,子查詢必須遵循 子...