SQL:将查询结果插入到另外一个表的三种状况

一:若是要插入目标表不存在:mysql

select * into 目标表 from 表 where ...sql

二:若是要插入目标表已经存在:数据库

insert into 目的表 select * from 表 where 条件服务器

三:若是是跨数据库操做的话: 怎么把A数据库的atable表所查询的东西,所有插入到B 数据库的btable表中blog

select * into B.btable from A.atable where ...table

一样,若是是跨服务器的,也是能够的。class

select
count( case when rule_name='RULE_1' then shop_id  end) as risk_rule_1 ,
count( case when rule_name='RULE_2' then rule_name  end) as risk_rule_2 ,
count( case when rule_name='RULE_3' then rule_name  end) as risk_rule_3 ,
count( case when rule_name='RULE_4' then rule_name  end) as risk_rule_4 ,
count( case when rule_name='RULE_5' then rule_name  end) as risk_rule_5 from  select_table where date(check_time)=20170828;

+-------------+-------------+-------------+-------------+-------------+
| risk_rule_1 | risk_rule_2 | risk_rule_3 | risk_rule_4 | risk_rule_5 |
+-------------+-------------+-------------+-------------+-------------+
|           0 |          18 |           0 |           1 |           0 |
+-------------+-------------+-------------+-------------+-------------+

insert into insert_table (risk_rule_1,risk_rule_2,risk_rule_3,risk_rule_4,risk_rule_5)
select
count( case when rule_name='RULE_1' then shop_id  end) as risk_rule_1 ,
count( case when rule_name='RULE_2' then rule_name  end) as risk_rule_2 ,
count( case when rule_name='RULE_3' then rule_name  end) as risk_rule_3 ,
count( case when rule_name='RULE_4' then rule_name  end) as risk_rule_4 ,
count( case when rule_name='RULE_5' then rule_name  end) as risk_rule_5 from  select_table where date(check_time)=20170828;
mysql> select * from risk_cash_rules_number\G;
*************************** 1. row ***************************
            id: 1
trusted_rule_1: 0
trusted_rule_2: 0
trusted_rule_3: 0
   risk_rule_1: 0
   risk_rule_2: 18
   risk_rule_3: 0
   risk_rule_4: 1
   risk_rule_5: 0
          date: 19710101
1 row in set (0.00 sec)
相关文章
相关标签/搜索