我正在尝试执行类似的查询:
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';
答案 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或有助于找到确切行的东西。