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掉就行了。
------解决方案--------------------直接建立普通表,不能两次使用临时表的。