UPDATE test1 a
INNER JOIN test2 b ON b.id = a.order_id
SET a.handing_fee = FORMAT(b.pay_money * 0.006, 2)
WHERE
b.paytype_name = '银行卡支付'
AND b.handing_fee IS NULL;执行错误
INNER JOIN test2 b ON b.id = a.order_id
SET a.handing_fee = FORMAT(b.pay_money * 0.006, 2)
WHERE
b.paytype_name = '银行卡支付'
AND b.handing_fee IS NULL;执行错误
解决方案 »
- mysql死锁
- 各位在数据量增大的时候用什么技术改进的呢?
- 执行存储过程,并获取返回值的语句
- 另开高分 找WWWWA 回答。。跪求。。。
- mysql的数据库,一个外键的问题。
- MYSQL插入数据急救啊!!!!
- 请问mysql插入速度的问题
- 请问mysql中有没有象mssql中事件控查器的工具,可以监控所有的执行语句?
- 如何得到相对目录信息,比如:C:\MySql\qq\ww\zz\xx\123.txt......
- mysql如何将A(172.20.0.1)服务器上A1表的数据导入到B(172.20.1.1)服务器上的B1表中
- mysql 服务器无法启动
- MySQL Nested Loop Join/Block Nested-Loop Join 理解
INNER JOIN test2 b ON b.id = a.order_id
SET a.handing_fee = FORMAT(b.pay_money * 0.006, 2)
WHERE
b.paytype_name = '银行卡支付'
AND b.handing_fee IS NULL;
[Err] 1064 - multi table related update not supported,tables:[TEST1, TEST2]
update test1 a
set a.handing_fee=(select FORMAT(b.pay_money * 0.006, 2) from test2 b where b.id=a.order_id and b.paytype_name = '银行卡支付' AND b.handing_fee IS NULL)
where a.order_id in (select id from test2 where paytype_name = '银行卡支付' AND handing_fee IS NULL)
MYSQL中不支持在update语句中使用join。
mysql中也不能够在set,where中使用任何子查询,这样也会报错。所以,你改成这样:UPDATE test1 a,
(select * from test2 )b
SET a.handing_fee = FORMAT(b.pay_money * 0.006, 2)
WHERE b.id = a.order_id
and b.paytype_name = '银行卡支付'
AND b.handing_fee IS NULL;