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

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

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知識。




主站蜘蛛池模板: 亚洲成a人片在线观看www | 午夜视频网站在线观看 | 日本天堂视频在线观看 | 色黄网站 | 日本一卡2卡3卡四卡精品 | 欧美在线 | 亚洲 | 欧美一级高清在线观看 | 四虎国内精品一区二区 | 四虎影院在线看 | 午夜视频久久久久一区 | 欧美在线播放 | 亚洲春色第一页 | 日韩在线高清视频 | 天天玩天天操 | 亚洲www视频| 生活片一级 | 亚洲wuma | 亚洲六月丁香六月婷婷花 | 青青青免费高清视频在线 | 亚洲第一男人天堂 | 亚洲免费福利视频 | 欧美伊人久久大香线蕉在观 | 天堂在线观看免费视频 | 亚洲欧美在线免费观看 | 天天摸夜夜添狠狠添2018 | 泄欲网站免费观看 | 天堂av2017男人的天堂 | 性刺激免费视频观看在线观看 | 四虎影酷| 日韩欧美伊人久久大香线蕉 | 色花堂国产精品首页第一页 | 青青青手机在线观看 | 日韩精品魔镜号系列在线观看 | 日本高清视频一区二区三区 | 做受又硬又粗又免费视频 | 青草草在线观看 | 亚色网站| 午夜影院在线视频 | 啪啪噜噜 | 天堂视频网站 | 五月婷婷综合色 |