SQL 把查詢結果當作"表"來使用

勤勤勤能補拙發表於2017-03-19
在寫資料庫作業的時候遇到的問題,在查閱百度後自己簡單整理了一下

sql中把一個查詢結果當作另一個表來查詢可以理解查詢結果為一個臨時表
使用select語句查詢結果集即可。
參考程式碼:
--1:將結果作為一個臨時表,可以使用連結或者直接查詢
SELECT * FROM(
    SELECT SUM(NUM_QNTY4) AS sumNum, NUM_LINKID
    FROM RW_STORE_QUNTY
    GROUP BY NUM_LINKID 
) AS A
舉例:查詢訂單表OrderInfo中購買數量超過30的使用者編號

SELECT UserId FROM --訂單表中購買數量超過30的使用者編號UserId
(
    SELECT UserId
    FROM OrderInfo-- OrderInfo 訂單表
    GROUP BY UserId HAVING SUM(Amount)>30
)AS T1 --查詢結果作為臨時表T1
 -------------------------------
--2:將上述查詢結果作為子查詢的方式 
SELECT * FROM 表名
WHERE 欄位名1 IN 
(
   SELECT 欄位名1 FROM(
       SELECT 欄位名1 AS sumNum, NUM_LINKID
       FROM RW_STORE_QUNTY
       GROUP BY NUM_LINKID 
   )
)
--查詢購買商品數量超過30的使用者資訊
--使用者資訊在UserInfo中,購買詳情放在OrderInfo中,所以要將兩個表關聯起來
SELECT * FROM UserInfo--從UserInfo中根據ID提取使用者的完整資訊
WHERE UserId IN (
    SELECT UserId FROM --得到訂單表中購買數量超過30的使用者編號UserId
    (
        SELECT UserId
        FROM OrderInfo-- OrderInfo 訂單表
        GROUP BY UserId HAVING SUM(Amount)>30
    )AS T1
)

參考:https://zhidao.baidu.com/question/68527378.html  不過我覺得部分有錯

相關文章