四步助你徹底理解子查詢

2021-08-22 00:24:07 字數 1678 閱讀 3476

假定有三張表

1 訂單表order 包含: 訂單編號 客戶編號 訂單日期

2 訂單詳情表orderitems  包含:訂單詳情編號 訂單編號 產品編號  產品名稱 產品**等

3 客戶表 customers 包含: 客戶編號 客戶姓名 客戶性別 聯絡**等 

如果已知產品編號rgan01

那麼現在要列出訂購rgan01產品的所有顧客

怎麼做?

1 在訂單詳情表中查詢出訂購產品編號為rgan01產品的所有的訂單編號 比如有200007,200008兩個訂單

2 在訂單表中查詢出這些訂單編號對應的所有的客戶編號 比如有10000004,100000005兩個客戶

3 在客戶表中查詢出這些客戶編號對應的所有的客戶資訊   比如分別叫張三和李四的兩個客戶 

4 從後向前進行整合

第一步在訂單詳情表中查詢出訂購產品編號為rgan01產品的所有的訂單編號

select order_num

from orderitems

where prod_id="rgan01"

查詢結果可能是這樣:

order_num

----------

2000007

2000008

第二步在訂單表中查詢出這些訂單編號對應的所有的客戶編號

select cust_id

from orders

where order_id in(2000007,2000008)

查詢結果可能是這樣:

cust_id

------------

1000000004

1000000005

第三步 

在客戶表中查詢出這些客戶編號對應的所有的客戶資訊

select cust_name,cust_phone

from customer

where cust_id in(1000000004,1000000005)

查詢結果可能是這樣:

cust_name    cust_phone

----------   -----------

張三         13145678900

李四         13556789000

第四步從後向前進行整合:

select cust_name,cust_phone

from customer

where cust_id in(select cust_id

from orders

where order_num in(select order_num

from orderitems

where prod_id="rgan01"))

當在一張表中需要的資訊沒有時

就只能通過編號聯絡其他表

例如這裡在訂單詳情表中是沒有顧客的任何資訊的

同時已知的產品編號在這三個表裡只存在於訂單詳情表中

要想僅僅通過產品編號就獲得相關的所有顧客資訊

就只能通過編號進行與其他表進行聯絡

先通過產品編號查詢到對應的所有訂單編號

再通過訂單編號查詢到對應的所有顧客編號

最後通過顧客編號查詢到對應的顧客資訊

編號是表進行聯絡的橋梁

通過表和表的聯絡就能查詢到本表所沒有的資訊

當要查詢的資訊本表沒有時

一定要通過編號對錶與表進行聯絡

IT跳槽 走好四步

中國首家職業顧問諮詢機構 可銳職業顧問機構的首席職業顧問卞秉彬先生認為 事業發展總有幾個突破性的關口,就像從量到質的突破需要乙個積累,職業發展也如是,當你費了九牛二虎之力仍然沒有突破的時候,你就要考慮方法和方向是否對頭了。在某it公司做普通程式設計師的李先生有著3年的工作經驗,曾面試過不少知名軟體企...

腦健康四步曲

新的研究使我們注意到高膽固醇可能使腦細胞較易痴呆。心臟 大腦關係到長期健康 心臟病患者做的很多事對於我們大家保持大腦健康也是好的.因此,由防止心臟病發作,你可避免腦消耗。1 服用維生素b 維生素b可以幫助阻止高半胱氨酸,它是損害血管的一種氨基酸。乙份關於芝加哥總部繁忙研究所研究員中老人的研究中發現,...

四步提高員工績效

提高員工的工作績效,促成企業的健康發展,應當從以下四個方面對員工進行管理。一 知人 對員工進行客觀的素質能力評價 知其所長 1 建立一套科學先進的測評體系,該體系應當包括學歷學位 專業技術任職資格 民主評議 領導認定 任務完成度以及其他一些具體的測評指標。2 賽馬不相馬。這是很多國內著名企業比如海爾...