mysql报错Can't reopen table: 'n'

语句如下:

CREATE TEMPORARY TABLE tmp_table1(SELECT n.AccountID,n.CampaignID,n.DeviceID,n.MacAddress,n.DeviceIDMD5,n.MacAddressMD5,b.NewType AS DataType FROM tmp_table n,(SELECT DeviceID,MAX(DataType) AS DataType,SUM(DataType) AS NewType FROM lfq_tmp_table GROUP BY DeviceID) b WHERE n.DeviceID = b.DeviceID AND n.DataType = b.DataType);

其中tmp_table 是一个临时表,里面有数据。

我的目的是从tmp_table 表中按照DeviceID分组过滤重复数据,只保留DataType(int型)最大的那条记录,但是留下来的那条记录的DataType字段要重新设置,设置为 +被滤掉那些数据的DataType的和。

目前执行以上语句时报错:Can't reopen table: 'n'

求解

------解决方案--------------------

MYSQL在1个SQL中,不能2次打开临时表,用物理表不行?

------解决方案--------------------

至少目前版本不行,用物理表

------解决方案--------------------

把tmp_table导入到物理表里就行了

------解决方案--------------------

直接用个普通表,用完后DROP掉,或者truncate掉就行了。

------解决方案--------------------

直接建立普通表,不能两次使用临时表的。

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

更多推荐