将数据从一个表更新到另一个表

时间:2015-05-15 11:41:13

标签: mysql

我在使用另一个表中的数据更新一个表的行时遇到一个小问题,请帮忙。

l

Make
Model
OEMNumberLatest
OemNumberPrevious
cStockCode
cDescription

目前,两列cStockCodecDescription为空白,正在等待填充,第二列c列为StockCode和{{1} }

问题是如何将表格Description的内容移动/复制到表格c的行中?

l和/或c.StockCode = l.OEMNumberLatest

3 个答案:

答案 0 :(得分:1)

您可能不应该一个表的内容移动到另一个表中。最好只在需要时使用连接获取值:

select l.*, c.cStockCode, c.cDescription
from table1 l join
     c
     on c.StockCode = l.OEMNumberLatest or c.StockCode = l.OemNumberPrevious;

这似乎是一个奇怪的情况,使用or,因为你可以得到多个匹配。

无论如何,您可以轻松地将其转换为update

update table1 l join
       c
       on c.StockCode = l.OEMNumberLatest or c.StockCode = l.OemNumberPrevious
    set l.cStockCode = c.cStockCode,
        l.cDescription = c.cDescription;

如果两个条件都匹配,则可以任意使用update

答案 1 :(得分:0)

这是使用另一个表

的更新语法的示例
UPDATE tableL SET
tableL.cStockCode=tableC.StockCode,tableL.cDescription=tableC.Description
FROM tableL
JOIN tableC   ON 
(tableC.StockCode = tableL.OEMNumberLatest) 
OR 
(tableC.StockCode = tableL.OemNumberPrevious);

我确信tableC中的内容应填入tableL,而JOIN则基于StockCode OEMNumberLatest或{{1} }}

答案 2 :(得分:0)

试试这个(在尝试之前保存数据,我不确定你的数据库结构):

UPDATE l
SET l.cStockCode = c.StockCode, l.cDescription = c.Description 
FROM l
INNER JOIN c ON (c.StockCode = l.OEMNumberLatest OR c.StockCode = l.OemNumberPrevious)