【发布时间】:2021-09-22 17:12:38
【问题描述】:
我有三张桌子。例如:
-
新表:
config_id | name 12 | null 22 | null -
旧表:
oldTable_id | name | value 1 | Jack | 10 2 | Frank | 22 -
关联表:
config_id | oldTable_id 12 | 1 22 | 2
我现在想做的是:
我想将name 列从oldTable 移动到newTable。我已经更改了newTable 并添加了一个空的name 列。现在我正在尝试写一个正确的INSERT INTO 声明。到目前为止我所拥有的是:
INSERT INTO newTable (name)
SELECT name
FROM oldTable ot join associativeTable at on ot.oldTable_id = at.oldTable_id
WHERE at.config_id = newTable.config_id;
我有点迷失了。我以前写过INSERT INTO 语句,但在我有关联表时从未写过。正确的陈述将如何适用于我的案例?
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
-
我认为您正在寻找
UPDATE声明而不是INSERT?您要更新现有行,现在插入新行 -
你是对的。所以我需要类似于:UPDATE newTable nt INNER JOIN associativeTable at on nt。 config_id = 在。 config_id SET nt.name = oldTable.name WHERE oldTable。 oldTable_id = at.oldTable_id;
标签: mysql sql join select where-clause