sql练习笔记
做一个sql update的子查询训练
以下为代码
UPDATE `新复制内容`
SET `新复制内容`.LargestHolderRate = `新复制内容`.LargestHolderRate*0.7
WHERE (
SELECT LargestHolderRate
FROM `新复制内容`
WHERE OfficeAddress = '广东省深圳市福田区福虹路9号世贸广场A座13楼'
)>=40
得到错误:
1093 - You can't specify target table '新复制内容' for update in FROM clause
后来改成这样也可以
UPDATE `新复制内容`
SET `新复制内容`.LargestHolderRate = `新复制内容`.LargestHolderRate*0.7
WHERE OfficeAddress = '广东省深圳市福田区福虹路9号世贸广场A座13楼' AND`新复制内容`.LargestHolderRate>=40
但是好像没用子查询,自己改了半天也没发现哪里错了,希望有大佬看了能说一说,如果我知道了就更新。
更新:以下子查询语句可以得到结果
UPDATE `新复制内容`
SET `新复制内容`.LargestHolderRate = `新复制内容`.LargestHolderRate*0.7
WHERE
(SELECT
OfficeAddress = '广东省深圳市福田区福虹路9号世贸广场A座13楼'
AND`新复制内容`.LargestHolderRate)>=40