Mysql SQL查询连接两个表,如果缺少记录,则添加新记录
我有两个表,都有相同的数据:Mysql SQL查询连接两个表,如果缺少记录,则添加新记录,mysql,sql,Mysql,Sql,我有两个表,都有相同的数据: IP address | count 我需要将这两个表合并成一个新表,其中包含来自两个原始表的数据 如果两个表中都有匹配的记录,则应添加它们的计数 如果有一条记录只存在于一个表中,它将被复制到新表中 让第一个表称为ip_data_Janur,第二个表称为ip_data_Junur,我尝试创建的表是ip_data_yearly。提前感谢。如果IP\u Data\u Yearly表为空,则带有按IP聚合计数的子查询的INSERT应该可以: INSERT INTO
IP address | count
我需要将这两个表合并成一个新表,其中包含来自两个原始表的数据
- 如果两个表中都有匹配的记录,则应添加它们的计数李>
- 如果有一条记录只存在于一个表中,它将被复制到新表中
让第一个表称为ip_data_Janur,第二个表称为ip_data_Junur,我尝试创建的表是ip_data_yearly。提前感谢。如果
IP\u Data\u Yearly
表为空,则带有按IP聚合计数的子查询的INSERT
应该可以:
INSERT INTO IP_Data_Yearly
SELECT IP_Address, SUM(Count)
FROM (
SELECT IP_Address, Count FROM IP_Data_January
UNION ALL SELECT IP_Address, Count FROM IP_Data_February
) IPCombined
GROUP BY IP_Address
如果
IP\u Data\u Yearly
表为空,则带有按IP聚合计数的子查询的INSERT
应执行以下操作:
INSERT INTO IP_Data_Yearly
SELECT IP_Address, SUM(Count)
FROM (
SELECT IP_Address, Count FROM IP_Data_January
UNION ALL SELECT IP_Address, Count FROM IP_Data_February
) IPCombined
GROUP BY IP_Address
第一次仅插入新ip地址(计数从零开始) 第二次更新计数
update ip_data_yearly y
set count= count +
(select count(j.ip_adress) from jan_table where j.ip_adress=y.ip_adress);
第3次在所有月份执行此操作第1次仅插入新ip地址(计数从零开始) 第二次更新计数
update ip_data_yearly y
set count= count +
(select count(j.ip_adress) from jan_table where j.ip_adress=y.ip_adress);
第三,在所有月份都这样做您可以使用
我假设IP_地址上的索引是唯一的。。然后
INSERT INTO ip_data_yearly (ip_adress)
SELECT IP_Address FROM IP_Data_January
UNION ALL SELECT IP_Address FROM IP_Data_February
ON DUPLICATE KEY UPDATE `count`=`count`+1;
你可以用
我假设IP_地址上的索引是唯一的。。然后
INSERT INTO ip_data_yearly (ip_adress)
SELECT IP_Address FROM IP_Data_January
UNION ALL SELECT IP_Address FROM IP_Data_February
ON DUPLICATE KEY UPDATE `count`=`count`+1;
您可以使用exists子句…您可以使用exists子句。。。