I want to create a query to move every unique entry from one table to another temporary table. I created the following query to get the unique entrys:
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;
and it returns lots of results:
/* Affected rows: 0 Found rows: 473 Warnings: 0 Duration for 1 query: 0.000 sec. (+ 0.016 sec. network) */
However when I put this into an update I cant seem to get the tmp table updated:
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;
which resulted in:
/* Affected rows: 0 Found rows: 0 Warnings: 0 Duration for 1 query: 00:04:25 */
I tried an number of things like using:
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;
Again I got:
/* Affected rows: 0 Found rows: 0 Warnings: 0 Duration for 1 query: 00:03:42 */
The topcampaigns_HOUR_tmp table never seems to get updated.
What am I doing wrong?
A
If you're adding rows you need INSERT
, and if you're adding rows from query results you need INSERT ... SELECT
. Try something like this:
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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.