在开始时在MySQL表中插入一条新记录

时间:2015-03-21 19:53:38

标签: mysql

我是MySQL的新手并且是我自己学习的。实际上我想将表中的列复制到现有的表列中!假设我现有的表是:

enter image description here

默认情况下插入pid值! 现在我想使用以下方法从另一个表复制一列:

  INSERT INTO exist_tab(FirstLevel) SELECT some_col FROM another_table;

这样值应该在FirstLevel列中。 但问题是副本值低于FirstLevel列中的pid值:

enter image description here

看到第一级到底!这有什么问题?我需要19的“H”值,但我不想使用通配符只想复制旧数据的新数据 谢谢 我是新手这种工作,请有人可以告诉我怎么做! 提前谢谢

2 个答案:

答案 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