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)
相關文章
相關標籤/搜索