我是MySQL的新手并且是我自己学习的。实际上我想将表中的列复制到现有的表列中!假设我现有的表是:
默认情况下插入pid值! 现在我想使用以下方法从另一个表复制一列:
INSERT INTO exist_tab(FirstLevel) SELECT some_col FROM another_table;
这样值应该在FirstLevel列中。 但问题是副本值低于FirstLevel列中的pid值:
看到第一级到底!这有什么问题?我需要19的“H”值,但我不想使用通配符只想复制旧数据的新数据 谢谢 我是新手这种工作,请有人可以告诉我怎么做! 提前谢谢
答案 0 :(得分:0)
您在此处使用INSERT
声明。 INSERT将在表中创建一条新记录。您必须使用UPDATE
更新现有表中的特定列,如下所示:
UPDATE exist_tab
SET FirstLevel = (SELECT some_col FROM another_table)
如果您想要任何条件更新,那么您可以使用JOIN
,如下所示:
UPDATE exist_tab a
LEFT JOIN another_table b ON
a.pid = b.id
SET FirstLevel = a.some_col;
答案 1 :(得分:0)
INSERT和UPDATE是执行不同任务的不同命令。
INSERT:将新记录插入表格
更新:更新表中的现有记录如果存在。
不确定它:(我不熟悉MYSQL)
Update a set
a.FirstLevel=b.some_col
from
exist_tab a join another_table b on a.Id=b.Id
或者您可以尝试:
update exist_tab a set a.FirstLevel=
(select top 1 some_col from another_table where Id=a.Id)
EDIT2:
update exist_tab a set a.FirstLevel=
(select top 1 some_col from another_table)
您可以找到Here。