[英]The problem with update and subquery. one to many
運行此查詢時,得到表的以下錯誤更新列名稱:
update t1 set t1.DIST_= (SELECT SUM(t2.amount) as DIST_ FROM t2
WHERE unique_number =300291 and t2.reseller_id ='31')
我有2個表(t1和t2)t1有DIST_列和unique_number和1行t2有很多行和列的數量,unique_number,reseller_id
此請求必須使用t2.reseller_id = '31'從表t2計算金額,並通過unique_number將值寫入t1.DIST_
現在,請求更改所有表列的值,但是我只需要更新t2.unique_number = t1.unique_number的列
您需要在UPDATE
語句中使用WHERE
子句:
update t1 set t1.DIST_= (SELECT SUM(t2.amount) as DIST_ FROM t2
WHERE unique_number =300291 and t2.reseller_id ='31')
where t1.unique_number = 300291
如果您想更新的所有行t1
從相應的總和t2
,加入一個子查詢組他們。
update t1
JOIN (SELECT unique_number, SUM(amount) AS DIST_
FROM t2
WHERE reseller_id = '31'
GROUP BY unique_number) AS t2
ON t1.unique_number = t2.unique_number
SET t1.DIST_ = t2.DIST_
嘗試像下面使用連接
UPDATE TABLEA t1
JOIN (SELECT unique_number,SUM(t2.amount) as DIST_ FROM table2
group by unique_number
) t2 ON t2.unique_number=t1.unique_number
SET t1.DIST_ =t2.DIST_
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.