簡體   English   中英

如何使用子選擇更新表

[英]How to update table with subselect

我正在嘗試將subselect的輸出與更新表中的字段結合在一起。 但是使用MySQL無法正確解決。

任何想法如何正確地做到這一點?

update INSTRUMENTDAILYINFO info 
set 
    info.vWap = (SELECT 
            t1.vWap
        FROM
            INSTRUMENTDAY t1
                JOIN
            (SELECT 
                Date(tradedate) date_date,
                    stockName,
                    min(tradedate) min_date
            FROM
                INSTRUMENTDAY
            GROUP BY date_date , stockName) t2 ON t1.tradedate = t2.min_date
                AND t1.stockName = t2.stockName
        order by t1.tradedate , t1.stockName asc)
where
    t1.tradeDate = info.tradeDate
        and t1.stockName = info.stockName

SELECT
`INSTRUMENTDAILYINFO`.`ID`,
`INSTRUMENTDAILYINFO`.`CLOSEPRICE`,
`INSTRUMENTDAILYINFO`.`HIGHVALUE`,
`INSTRUMENTDAILYINFO`.`LOWVALUE`,
`INSTRUMENTDAILYINFO`.`STARTPRICE`,
`INSTRUMENTDAILYINFO`.`STOCKNAME`,
`INSTRUMENTDAILYINFO`.`TRADEDATE`
FROM `INSTRUMENTDAILYINFO`;

SELECT
`INSTRUMENTDAY`.`ID`,
`INSTRUMENTDAY`.`STOCKNAME`,
`INSTRUMENTDAY`.`TRADEDATE`,
`INSTRUMENTDAY`.`VWAP`
FROM `SimpleGrowth`.`INSTRUMENTDAY`;
UPDATE INSTRUMENTDAILYINFO info 
JOIN
(SELECT t1.vWap,t1.tradedate as tradedate,t2.stockName as stockName 
  FROM INSTRUMENTDAY t1
             JOIN
            (SELECT 
                Date(tradedate) date_date,
                    stockName,
                    min(tradedate) min_date
            FROM
                INSTRUMENTDAY
            GROUP BY date_date , stockName) t2 ON t1.tradedate = t2.min_date
                AND t1.stockName = t2.stockName
            ORDER BY t1.tradedate , t1.stockName asc)x
ON
     x.tradeDate = info.tradeDate
AND x.stockName = info.stockName
SET  info.vWap= x.vWap

如果在主表和x子查詢之間有一個連接列,則類似這樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM