Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将唯一行移动到临时表的mysql查询_Mysql - Fatal编程技术网

将唯一行移动到临时表的mysql查询

将唯一行移动到临时表的mysql查询,mysql,Mysql,我想创建一个查询,将每个唯一条目从一个表移动到另一个临时表。 我创建了以下查询以获取唯一入口: select date, messageType, zCampaignId, isSenderPolicy, sender, recipient, policy, operator, country, zNumber from topcampaigns_HOUR group by date, messageType, zCampaignId, isSenderPolicy, sender, rec

我想创建一个查询,将每个唯一条目从一个表移动到另一个临时表。 我创建了以下查询以获取唯一入口:

select date, messageType, zCampaignId, isSenderPolicy, sender, recipient, policy, operator, country, zNumber 
from topcampaigns_HOUR 
group by date, messageType, zCampaignId, isSenderPolicy, sender, recipient, policy, operator, country, zNumber 
having count(*) = 1;
它会返回很多结果:

/* Affected rows: 0  Found rows: 473  Warnings: 0  Duration for 1 query: 0.000 sec. (+ 0.016 sec. network) */
但是,当我将其放入更新中时,我似乎无法更新tmp表:

UPDATE topcampaigns_HOUR_tmp as b 
INNER JOIN (
   select date, messageType, zCampaignId, isSenderPolicy, sender, recipient, policy, operator, country, zNumber 
   from topcampaigns_HOUR 
   group by date, messageType, zCampaignId, isSenderPolicy, sender, recipient, policy, operator, country, zNumber 
   having count(*) = 1) as a 
SET 
b.date=a.date, 
b.messageType=a.messageType, 
b.zCampaignId=a.zCampaignId, 
b.isSenderPolicy=a.isSenderPolicy, 
b.sender=a.sender, 
b.recipient=a.recipient, 
b.policy=a.policy,
b.operator=a.operator,
b.country=a.country, 
b.zNumber=a.zNumber;
这导致:

/* Affected rows: 0  Found rows: 0  Warnings: 0  Duration for 1 query: 00:04:25 */
我尝试了很多方法,比如使用:

UPDATE topcampaigns_HOUR_tmp JOIN (select date, messageType, zCampaignId, isSenderPolicy, sender, recipient, policy, operator, country, zNumber from topcampaigns_HOUR group by date, messageType, zCampaignId, isSenderPolicy, sender, recipient, policy, operator, country, zNumber having count(*) = 1) a SET 
topcampaigns_HOUR_tmp.date=a.date, 
topcampaigns_HOUR_tmp.messageType=a.messageType, 
topcampaigns_HOUR_tmp.zCampaignId=a.zCampaignId, 
topcampaigns_HOUR_tmp.isSenderPolicy=a.isSenderPolicy, 
topcampaigns_HOUR_tmp.sender=a.sender, 
topcampaigns_HOUR_tmp.recipient=a.recipient, 
topcampaigns_HOUR_tmp.policy=a.policy, 
topcampaigns_HOUR_tmp.operator=a.operator, 
topcampaigns_HOUR_tmp.country=a.country, 
topcampaigns_HOUR_tmp.zNumber=a.zNumber;
我再次得到:

/* Affected rows: 0  Found rows: 0  Warnings: 0  Duration for 1 query: 00:03:42 */
topcampaigns\u HOUR\u tmp表似乎从未更新过

我做错了什么


A

如果要添加行,则需要插入,如果要从查询结果中添加行,则需要插入。试着这样做:

INSERT INTO topcampaigns_HOUR_tmp (
   date, messageType, zCampaignId, isSenderPolicy, sender,
   recipient, policy, operator, country, zNumber)
select
   date, messageType, zCampaignId, isSenderPolicy, sender,
   recipient, policy, operator, country, zNumber 
from topcampaigns_HOUR 
group by
   date, messageType, zCampaignId, isSenderPolicy, sender,
   recipient, policy, operator, country, zNumber 
having count(*) = 1

为什么不插入…选择?e、 g.
插入到可诱惑的SELECT*中,按DUP=1的字段从表组中计数(*)DUP