使用select语句更新sql查询值

时间:2016-03-04 13:00:24

标签: sql

我正在尝试执行类似的查询:

update table set column=(select column1 from table1);

我只想将其他表中的值存储到我的列

但是当我尝试我的SQL查询时,它说

ERROR 1242 (21000): Subquery returns more than 1 row

这肯定意味着我的table1包含多于1行,所以我想知道有没有办法将数据存储到具有多行的其他表的列中。

或基本上将其他表的内容保存为类似

的文本
 update table set column='Data in text from other table';

3 个答案:

答案 0 :(得分:1)

您可能需要一个关联条款:

update table
    set column = (select column1 from table1 where table.col = table1.col);

您需要确定哪些列用于关联。

答案 1 :(得分:0)

它将起作用,因为我得到你的要求。如果你的要求是其他我将在查询中进行更改,请告诉我

update table_name t1
inner join table1 t2 on t1.id =t2.id
set column =column1

答案 2 :(得分:0)

您的嵌套查询返回多行,因此您遇到此错误。 试试这种方式

UPDATE FirstTable
SET FirstTable.ColumnName =tbl2.ColumnName 
FROM SecondTable tbl2 WHERE tbl2.Id = FirstTable.Id

应该有一个共同的ID或有助于找到确切行的东西。