我有一个表abc
,其中包含某些用户数据(名称,ID,加入日期),另一个表xyz
具有相似的列但具有重复数据。我想更新表abc
的日期列,日期值为xyz
。但是xyz
有重复的数据,并且出现错误'单行子查询返回...'。当另一个表有重复数据时,如何将数据从一个表更新到另一个表。我希望保留表xyz
中的数据,并且不能删除重复记录。我正在使用的查询是: -
update abc
set date = (select date from
( select a.date from xyz a, abc b where a.emp_id=b.emp_id ))-- this query gives duplicate records hence the error single row subquery...
where exists
( select 1 from ( select a.emp_id from abc a, xyz b where a.emp_id=b.emp_id)
)
答案 0 :(得分:0)
如果您的子查询返回所有记录的相同日期,则可以按以下方式修改
select a.date from xyz a, abc b where a.emp_id=b.emp_id and rownum = 1
答案 1 :(得分:0)
尝试使用max或min来获取其中一个重复值。
update abc b
set date = (select max(date) from
xyz a where a.emp_id=b.emp_id )