使用另一个表中的数据更新记录(但查找表包含重复记录)

时间:2013-06-24 15:34:14

标签: sql plsql

我有一条记录,我想用另一个表中相同字段的数据更新字段。问题是查找表包含重复的记录,所以我只想从第一个匹配的记录中提取数据。

这是我现在所拥有的,但是我收到了这个错误:

  

太多的值

我的查询是:

UPDATE T_TABLE1 T1 
SET T1.UPDATEFIELD =  (SELECT DISTINCT(T2.itemtag), MAX(T2.UPDATEFIELD) 
                       FROM T_TABLE2 T2  
                       WHERE T2.ITEMTAG = T1.ITEMTAG 
                       GROUP BY T2.itemtag)

2 个答案:

答案 0 :(得分:2)

这个怎么样:

UPDATE T_TABLE1 T1 
SET T1.UPDATEFIELD =  (SELECT MAX(T2.UPDATEFIELD) 
                       FROM T_TABLE2 T2  
                       WHERE T2.ITEMTAG = T1.ITEMTAG 
                       GROUP BY T2.itemtag)

答案 1 :(得分:0)

您正在选择导致问题的两列;

UPDATE T_TABLE1 T1 
SET T1.UPDATEFIELD =  (SELECT MAX(T2.UPDATEFIELD) 
                       FROM T_TABLE2 T2  
                       WHERE T2.ITEMTAG = T1.ITEMTAG 
                       GROUP BY T2.itemtag)

希望得到这个帮助。