到現在為止,我們已經表明,以select宣告是乙個簡單的查詢。該單個語句從單個資料庫表中檢索資料。sql還同意建立乙個子查詢。即巢狀在其他查詢的查詢。
下列實施例給出巢狀查詢。
一種表示訂單資訊儲存,包含訂單號,客戶id。訂購日期。例如以下所看到的:
一張表示儲存訂單物品資訊,例如以下:
另一張表儲存的是客戶的資訊。例如以下:
假如如今的需求是要找出訂購物品tnt2的全部客戶。我們發現通過第二張訂購物品表能夠獲取到訂單編號,根據訂單編號,能夠再第一張訂單資訊表中獲取到對應的客戶id。通過客戶id即能夠在第三張表中查詢到客戶資訊了:
因此有 tnt2 ----> order_num ----> cust_id-----> cust_name。根據之前的select語句能夠分條來查詢:
如今能夠把第乙個查詢變為第二個查詢的子查詢來做:
同理我們能夠把三個查詢語句巢狀到一條sql語句中,巢狀的sql語句由內向外計算。即最裡面的select語句計算出的結果給外一層的select語句來用:
另外還能夠將計算字段作為子查詢, 如,我們須要計算出custem表中以個客戶須要支付多少錢?先用乙個select找出該客戶有哪些訂單,再將這些訂單的價錢加在一起:
先看cust_id = 10001的訂單 20005,20009相加的情況:
sum()函式是進行列相加,正好能夠把total當成一列來使用,進行求和, in(20005,20009)轉換為select語句就比較簡單了:
以下語句是計算每個客戶所須要支付的總金額,是對以上sql語句的進一步改進,一次求出全部的客戶的應付金額:
mysql子查詢應用案例 MySQL子查詢
mysql子查詢 子查詢 sub query,查詢是在某個查詢結果之上進行的,一條select語句內部包含了另外一條select語句。分類子查詢有兩種分類方式,分別為 按按結果分類和位置分類。按結果分類,即根據子查詢得到的資料進行分類 理論上,任何乙個查詢結果都可以理解為乙個二維表 分別為 標量子查...
mysql子查詢教程 MySQL子查詢詳解
子查詢指乙個查詢語句巢狀在另乙個查詢語句內部的查詢,這個特性從 mysql 4.1 開始引入,在 select 子句中先計算子查詢,子查詢結果作為外層另乙個查詢的過濾條件,查詢可以基於乙個表或者多個表。子查詢中常用的操作符有 any some all in 和 exists。子查詢可以新增到 sel...
mysql關聯子查詢 MySQL 關聯子查詢
mysql 關聯子查詢 關聯子查詢是指乙個包含對錶的引用的子查詢,該錶也顯示在外部查詢中。通俗一點來講,就是子查詢引用到了主查詢的資料資料。以乙個實際的例子來理解關聯子查詢 article 文章表 aidtitlecontentuid 文章1文章1正文內容.文章2文章2正文內容.文章3文章3正文內容...