簡體   English   中英

MySQL 用另一個表中的行更新表中的行

[英]MySQL update rows from a table with rows from another one

我正在嘗試將一大塊行從一個表移動到另一個,只有選定的字段。

這些表具有不同的字段名稱。

目標表是mkt_data.bknk1810 ,源表是tiresia.equity_810_openings 需要復制的數據在A, B, C, D列中,需要分別復制到max, min, close, open列。

以下代碼導致僅將源表中的第一行復制到目標表的所有選定行中,這不是預期的結果。

UPDATE mkt_data.bknk1810, tiresia.equity_810_openings SET
    mkt_data.bknk1810.max            = tiresia.equity_810_openings.A,
    mkt_data.bknk1810.min         = tiresia.equity_810_openings.B,
    mkt_data.bknk1810.close          = tiresia.equity_810_openings.C,
    mkt_data.bknk1810.open     = tiresia.equity_810_openings.D
 where (mkt_data.bknk1810.Date >= '2021-07-19' and mkt_data.bknk1810.Date <= '2021-09-09') and (tiresia.equity_810_openings.p_key >= 20210719 and tiresia.equity_810_openings.p_key <= 20210909);

我的錯誤在哪里? 為什么它只復制第一行?

編輯

要求提供樣本數據。

目標表中的行是

Date                max   min   close open
2021-07-19 00:00:00 null  null  null  null
2021-07-20 00:00:00 null  null  null  null
2021-07-21 00:00:00 null  null  null  null
2021-07-22 00:00:00 null  null  null  null
2021-07-23 00:00:00 null  null  null  null
2021-07-26 00:00:00 null  null  null  null
2021-07-27 00:00:00 null  null  null  null
2021-07-28 00:00:00 null  null  null  null

而源表中的那些是

p_key     A     B     C     D
20210719  28100 27460 27620 27960
20210720  27630 27060 27410 27570
20210721  27870 27310 27530 27490
20210722  27970 27580 27910 27630
20210723  27970 27580 27910 27630
20210726  28150 27760 27790 28100
20210727  28150 27760 27790 28100
20210728  27840 27350 27530 27660

源表中的數據需要移動到目標表中。

因此,預期結果是:

Date                max   min   close open
2021-07-19 00:00:00 28100 27460 27620 27960
2021-07-20 00:00:00 27630 27060 27410 27570
2021-07-21 00:00:00 27870 27310 27530 27490
2021-07-22 00:00:00 27970 27580 27910 27630
2021-07-23 00:00:00 27970 27580 27910 27630
2021-07-26 00:00:00 28150 27760 27790 28100
2021-07-27 00:00:00 28150 27760 27790 28100
2021-07-28 00:00:00 27840 27350 27530 27660
 

原來你只需要添加一個簡單的

and (mkt_data.bknk1810.Date= CONVERT(tiresia.equity_810_openings.p_key, CHAR));

在我發布的查詢結束時。

將此留作參考。

暫無
暫無

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

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