六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

mysql創建計算字段使用子查詢圖文說明教程

[摘要]作為計算字段使用子查詢使用子查詢的另一方法是創建計算字段。假如需要顯示 customers表中每個客戶的訂單總數。訂單與相應的客戶ID存儲在 orders 表中。為了執行這個操作,遵循下面的步驟。(1) 從 customers 表中檢索客戶列表。(2) 對于檢索出的每個客戶,統計其在 orders...
作為計算字段使用子查詢

使用子查詢的另一方法是創建計算字段。假如需要顯示 customers表中每個客戶的訂單總數。訂單與相應的客戶ID存儲在 orders 表中。

為了執行這個操作,遵循下面的步驟。

(1) 從 customers 表中檢索客戶列表。

(2) 對于檢索出的每個客戶,統計其在 orders 表中的訂單數目。

正如前兩章所述,可使用 SELECT COUNT ( *) 對表中的行進行計數,并且通過提供一條 WHERE 子句來過濾某個特定的客戶ID,可僅對該客戶的訂單進行計數。例如,下面的代碼對客戶 10001 的訂單進行計數:

輸入:

select count(*) as orders from orders where cust_id = 10001;

為了對每個客戶執行 COUNT(*) 計算,應該將 COUNT(*) 作為一個子查詢。請看下面的代碼:

輸入:

select cust_name,cust_state,(select count(*) from orders where orders.cust_id = customers.cust_id) as orders from customers order by cust_name;

輸出:

QQ截圖20170510101615.png

分析:這 條 SELECT 語 句 對 customers 表 中 每 個 客 戶 返 回 3 列 :cust_name 、 cust_state 和 orders 。 orders 是一個計算字段,它是由圓括號中的子查詢建立的。該子查詢對檢索出的每個客戶執行一次。在此例子中,該子查詢執行了5次,因為檢索出了5個客戶。

子查詢中的 WHERE 子句與前面使用的 WHERE 子句稍有不同,因為它使用了完全限定列名(在第4章中首次提到)。下面的語句告訴SQL比較orders 表中的 cust_id 與當前正從 customers 表中檢索的 cust_id :

where orders.cust_id = customers.cust_id

相關子查詢(correlated subquery) 涉及外部查詢的子查詢。這種類型的子查詢稱為相關子查詢。任何時候只要列名可能有多義性,就必須使用這種語法(表名和列名由一個句點分隔)。為什么這樣?

我們來看看如果不使用完全限定的列名會發生什么情況:

輸入:

select cust_name,cust_state,(select count(*) from orders where cust_id = cust_id) as orders from customers order by cust_name;

輸出:

QQ截圖20170510102225.png

分析:顯然,返回的結果不正確(請比較前面的結果),那么,為什么會這樣呢?有兩個 cust_id 列,一個在 customers 中,另一個在orders 中,需要比較這兩個列以正確地把訂單與它們相應的顧客匹配。如果不完全限定列名,MySQL將假定你是對 orders 表中的 cust_id 進行自身比較。而 SELECT COUNT(*) FROM orders WHERE cust_id = cust_id;總是返回 orders 表中的訂單總數(因為MySQL查看每個訂單的 cust_id是否與本身匹配,當然,它們總是匹配的)。

雖然子查詢在構造這種 SELECT 語句時極有用,但必須注意限制有歧義性的列名。

不止一種解決方案 正如本章前面所述,雖然這里給出的樣例代碼運行良好,但它并不是解決這種數據檢索的最有效的方法。在后面的章節中我們還要遇到這個例子。

逐漸增加子查詢來建立查詢 用子查詢測試和調試查詢很有技巧性,特別是在這些語句的復雜性不斷增加的情況下更是如此。用子查詢建立(和測試)查詢的最可靠的方法是逐漸進行,這與MySQL處理它們的方法非常相同。首先,建立和測試最內層的查詢。然后,用硬編碼數據建立和測試外層查詢,并且僅在確認它正常后才嵌入子查詢。這時,再次測試它。對于要增加的每個查詢,重復這些步驟。這樣做僅給構造查詢增加了一點點時間,但節省了以后(找出查詢為什么不正常)的大量時間,并且極大地提高了查詢一開始就正常工作的可能性。

【相關推薦】

1.什么是mysql子查詢?如何利用子查詢進行過濾?

2.mysql中什么是聯結和關系表?

3.為什么使用聯結和如何創建聯結

4.MySQL中WHERE子句重要性和如何聯結多個表

以上就是mysql創建計算字段使用子查詢教程的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




主站蜘蛛池模板: 亚洲精品小说 | 欧美性v视频播放 | 婷婷在线影院 | 四虎免费在线观看视频 | 天天激情站 | 午夜在线成人 | 伊人影院视频 | 婷婷午夜| 视频自拍网 | 在线播放国产色视频在线 | 午夜在线观看免费观看大全 | 亚洲伊人久久大香线蕉综合图片 | 手机在线看片国产 | 亚洲精品15p | 亚洲www| 亚洲大香伊人蕉在人依线 | 亚洲永久在线 | 午夜久久久 | 欧美无专区 | 日本天堂影院在线播放 | 欧洲一区麻豆文化传媒 | 青青草国产免费久久久下载 | 日韩视频一 | 天天爽夜夜爽一区二区三区 | 色无极在线| 色婷婷影院| 丝袜美腿中文字幕 | 手机看片久久国产免费不卡 | 亚洲高清国产一线久久 | 日韩免费一区二区三区在线 | 色中色资源站 | 欧美偷拍小视频 | 四虎在线视频 | 欧美午夜在线视频 | 日本中文字幕网 | 午夜短视频| 香蕉大成网人站在线 | 日韩欧美福利 | 五月婷婷网站 | 日本大片免费观看视频 | 天天干在线观看 |