2013-06-24 84 views
0

我有一個記錄,我想用另一個表中相同字段的數據更新字段。問題是查找表包含重複記錄,所以我只想從第一個匹配的記錄中提取數據。更新記錄與來自另一個表的數據(但查找表包含重複記錄)

這就是我現在所擁有的,但我得到這個錯誤:

too many values

我的查詢是:

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

如何:

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

感謝,偉大的工作 – user1332534

+0

唯一的問題是當我添加條件「WHERE T2.ITEMTAG = T1.ITEMTAG或T2.ITEMTAG = T1.END1或T2.ITEMTAG = T1.END2」查詢無限期運行 – user1332534

+0

多少行在桌子上?或者可能真的很昂貴。 –

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) 

希望這有助於。

相關問題