我尝试根据相同的“id”值将一列数据从一个表插入到另一个表中。我执行了以下查询并成功运行并显示消息中的所有行都受到影响。但是当我检查表时,它显示该列的每一行的空白值。因此,没有插入数据。
insert into edge_table (code)
select d.code as code from d_k as d inner join edge_table as edge on d.segm_id = edge.segm_id
然后我尝试了UPDATE。执行以下查询。并且它给出了一个错误:“用作表达式的子查询返回了多行”
update edge_table set (code) =
(select d.code as code from d_k as d inner join edge_table as edge on d.segm_id = edge.segm_id)
但是当我尝试选择时,它运作良好。
select d.code as code from d_k as d inner join edge_table as edge on d.segm_id = edge.segm_id
答案 0 :(得分:1)
我怀疑你想要这个:
update edge_table
set code = d.code
from d_k d
where d.segm_id = edge_table.segm_id ;
这会更新edge_table
中匹配的d_k
中的现有值。
注意:您的数据存在问题,因为edge_table
中的给定行有多个匹配项。这将使用任意匹配行进行更新。