最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中的嵌套查詢

 更新時間:2024年04月10日 09:22:21   作者:Q小白養(yǎng)成記  
這篇文章主要介紹了MySQL中的嵌套查詢方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

嵌套查詢

是指在一個完整的查詢語句之中,包含若干個不同功能的小查詢;從而一起完成復(fù)雜查詢的一種編寫形式。

包含的查詢放在()里 , 包含的查詢出現(xiàn)的位置:

位置含義
SELECT之后把查詢結(jié)果作為表頭使用
FROM之后把查詢結(jié)果作為表使用
WHERE之后把查詢結(jié)果作為查詢條件
HAVING之后把查詢結(jié)果作為過濾使用

SELECT之后

查看客戶的總訂單數(shù)

mysql> select cust_name,
    -> (select count(*) from orders
    -> where orders.cust_id = customers.cust_id )
    -> as orders_num from customers;
+----------------+------------+
| cust_name      | orders_num |
+----------------+------------+
| Coyote Inc.    |          2 |
| Mouse House    |          0 |
| Wascals        |          1 |
| Yosemite Place |          1 |
| E Fudd         |          1 |
+----------------+------------+
5 rows in set (0.01 sec)

WHERE之后

查詢下單了TNT2的客戶id

mysql> select cust_id from orders
    -> where order_num in
    -> ( select order_num from orderitems
    -> where prod_id = 'TNT2' );
+---------+
| cust_id |
+---------+
|   10001 |
|   10004 |
+---------+
2 rows in set (0.01 sec)

實驗

1.使用子查詢,返回購買價格為10或以上的商品的客戶列表。您需,然后使用要使用Orderltems表查找匹配的訂單號(order num)Orders表檢索每個匹配訂單的客戶ID(cust id)。

mysql> select distinct cust_id from  orders
    -> where order_num in 
    -> ( select order_num from orderitems 
    -> where item_price >= 10 ) ;
+---------+
| cust_id |
+---------+
|   10001 |
|   10003 |
|   10004 |
+---------+
3 rows in set (0.01 sec)

2.您需要知道訂購產(chǎn)品BR01的日期。編寫一條SQL語句,使用子查詢確定哪些訂單(Orderltems中)購買了prod_id為BR01的商品,然后返回客戶ID(cust_id),和訂單日期(order_date)。按訂單日期排序結(jié)果。

mysql> select order_date from orders 
    -> where order_num in
    -> ( select order_num from orderitems
    -> where prod_id = 'ANV01');
+---------------------+
| order_date          |
+---------------------+
| 2023-09-01 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

3.更新前面的挑戰(zhàn),為購買了prod id為AVN01的商品的任何客戶返回客戶電子郵件(Customers表中的custemail)。這里有一個提示:這涉及到SELECT語句,最里面的查詢從Orderltems返回order num,中間的查詢從Customers返回custid。

mysql> select cust_email from customers
    -> where cust_id in
    -> ( select cust_id from orders
    -> where order_num in
    -> ( select order_num from orderitems
    -> where prod_id = 'ANV01' ) );
+-----------------+
| cust_email      |
+-----------------+
| ylee@coyote.com |
+-----------------+
1 row in set (0.00 sec)

4.您需要一個包含每個客戶訂購的總額的客戶ID列表。編寫一條SOL語句,返回客戶ID(0rders表中的cust id)和total ordered,并使用一個子查詢返回每個客戶的訂單總數(shù)。按花費從大到小的順序排列結(jié)果。這里有一個提示:你已經(jīng)使用SUM()來計算訂單總計。

mysql> SELECT cust_id,
    -> ( SELECT SUM(quantity * item_price )  FROM orderitems
    -> WHERE order_num IN
    -> ( SELECT order_num  FROM orders
    -> WHERE orders.cust_id = customers.cust_id ) ) 
    -> AS total_ordered
    -> FROM customers
    -> ORDER BY total_ordered DESC;
+---------+---------------+
| cust_id | total_ordered |
+---------+---------------+
|   10004 |       1000.00 |
|   10001 |        188.34 |
|   10005 |        125.00 |
|   10003 |         55.00 |
|   10002 |          NULL |
+---------+---------------+
5 rows in set (0.00 sec)
 

5.編寫一條SQL語句,從Products表中檢索所有產(chǎn)品名稱(prodname),以及一個名為quant_sold的計算列,該列包含此商品的銷售總數(shù)(使用Orderltems表中的子查詢和SUM(quantity)檢索)。

mysql> SELECT prod_name,
    -> (SELECT Sum(quantity)
    -> FROM orderitems
    -> WHERE products.prod_id=orderitems.prod_id) 
    -> AS quant_sold
    -> FROM products;
+----------------+------------+
| prod_name      | quant_sold |
+----------------+------------+
| .5 ton anvil   |         10 |
| 1 ton anvil    |          3 |
| 2 ton anvil    |          1 |
| Detonator      |       NULL |
| Bird seed      |          2 |
| Carrots        |         50 |
| Fuses          |       NULL |
| JetPack 1000   |       NULL |
| JetPack 2000   |          1 |
| Oil can        |          1 |
| Safe           |       NULL |
| Sling          |          1 |
| TNT (1 stick)  |       NULL |
| TNT (5 sticks) |        105 |
+----------------+------------+
14 rows in set (0.00 sec)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql存儲過程多層游標(biāo)循環(huán)嵌套的寫法分享

    mysql存儲過程多層游標(biāo)循環(huán)嵌套的寫法分享

    這篇文章主要介紹了mysql存儲過程多層游標(biāo)循環(huán)嵌套的寫法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MySQL中二進制與重做日志文件的基本概念學(xué)習(xí)教程

    MySQL中二進制與重做日志文件的基本概念學(xué)習(xí)教程

    這篇文章主要介紹了MySQL中二進制日志文件與重做日志文件的基本概念學(xué)習(xí)教程,講到了一些重做日志與二進制日志的區(qū)別,需要的朋友可以參考下
    2015-11-11
  • 淺談MySQL中的group by

    淺談MySQL中的group by

    這篇文章主要介紹了MySQL中的group by,MySQL的group by用于對查詢的數(shù)據(jù)進行分組;此外MySQL提供having子句對分組內(nèi)的數(shù)據(jù)進行過濾。下面來看看文章對此的具體介紹,需要的朋友可以參考一下,希望對你有所幫助
    2021-11-11
  • MySQL徹底卸載并且重新安裝教程

    MySQL徹底卸載并且重新安裝教程

    本文詳細(xì)介紹了卸載和重新安裝MySQL的步驟,包括停止MySQL服務(wù)、卸載軟件、清理殘余文件、刪除注冊表、刪除環(huán)境變量配置等,重新安裝時,需要下載MySQL、配置環(huán)境變量、新建配置文件、初始化MySQL服務(wù)、注冊MySQL服務(wù)、啟動MySQL服務(wù)、修改默認(rèn)賬戶密碼以及登錄MySQL
    2025-01-01
  • 分享MySQL?主從延遲與讀寫分離的七種解決方案

    分享MySQL?主從延遲與讀寫分離的七種解決方案

    這篇文章主要介紹了分享MySQL?主從延遲與讀寫分離的七種解決方案,常見的解決方式是分庫分表,每次讀寫都是操作主庫的一個分表,從庫只用來做數(shù)據(jù)備份。當(dāng)主庫發(fā)生故障時,主從切換,保證集群的高可用性,下面詳細(xì)的相關(guān)資料介紹,需要的小伙伴可以參考一下
    2022-03-03
  • mySQL 延遲 查詢主表

    mySQL 延遲 查詢主表

    在主外鍵表存在關(guān)系的時候如果加上"lazy=true"的話,則表明延遲,即只查詢主表中的內(nèi)容,而不查詢外鍵表中的內(nèi)容。
    2009-09-09
  • MySQL事務(wù)與隔離級別的使用基礎(chǔ)理論

    MySQL事務(wù)與隔離級別的使用基礎(chǔ)理論

    這篇文章主要介紹了MySQL事務(wù)的隔離級別詳情,事務(wù)隔離級別越高,為避免沖突所花費的性能也就越多,即效率低。在“可重復(fù)讀”級別,實際上可以解決部分的虛讀問題,但是不能防止update更新產(chǎn)生的虛讀問題,要禁止虛讀產(chǎn)生,還是需要設(shè)置串行化隔離級別
    2023-02-02
  • MySQL9.0更新了哪些特性

    MySQL9.0更新了哪些特性

    MySQL 9.0作為MySQL數(shù)據(jù)庫管理系統(tǒng)的一個重要更新版本,帶來了多項新特性和改進,下面我們就一起來看看更新了哪些特性,感興趣的可以了解一下
    2024-08-08
  • 修改MySQL8.0 默認(rèn)的數(shù)據(jù)目錄(快捷操作無配置)

    修改MySQL8.0 默認(rèn)的數(shù)據(jù)目錄(快捷操作無配置)

    這篇文章主要介紹了修改MySQL8.0 默認(rèn)的數(shù)據(jù)目錄(快捷操作無配置),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Mysql全文搜索match against的用法

    Mysql全文搜索match against的用法

    全文檢索在 MySQL 中就是一個 FULLTEXT 類型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 時或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、 VARCHAR 或 TEXT 列上創(chuàng)建
    2011-10-10

最新評論

莱芜市| 新田县| 清水河县| 北辰区| 南京市| 龙井市| 曲松县| 前郭尔| 金寨县| 青田县| 星子县| 龙游县| 衢州市| 隆化县| 甘孜县| 沐川县| 马关县| 浦北县| 伊金霍洛旗| 敖汉旗| 环江| 雷波县| 如皋市| 黎城县| 平凉市| 扶风县| 泸州市| 娄烦县| 双牌县| 阿瓦提县| 秦皇岛市| 临沧市| 崇阳县| 开化县| 大邑县| 喀什市| 双辽市| 泸定县| 色达县| 宝鸡市| 扎囊县|