如何将查询结果插入mysql中的表?

时间:2015-03-11 11:12:20

标签: mysql select insert

我在mysql中编写了以下sql代码:

SELECT replace(concat(concat(concat(concat(concat(concat(server_name,':'),server_id),':'),1),'='), flag), ',', '') result
FROM (SELECT f.name server_name,f.id server_id, group_concat(concat(concat(concat(concat(concat(concat(sgk.NAME,';') ,sgk.id),';'),1),';'),sgk.nagios_id ),'|') as flag
 FROM complex_check cc,lnksinglechecktocomplexcheck lk,single_check sgk,functionalci f ,lnkconfigurationitemtosinglecheck lkcg
WHERE cc.id = lk.complex_check_id AND sgk.id = lk.single_check_id AND sgk.id = lkcg.single_check_id AND lkcg.config_item_id = f.id GROUP BY f.NAME) x

使用这个sql代码,我可以得到以下结果:

result 
INFRASEP01:32:1=cpu check01;1;1;2|DB check sep01;3;1;2|disk space check sep01;2;1;3|
INFRASEP02:33:1=cpu check sep02;4;1;2|db check sep02;5;1;23|disk space check sep02;6;1;2|
INFRAVICO04:35:1=cpu check04;7;1;2|db check CO04;8;1;2|disk space check CO04;9;1;2|

我想将结果输入到“pfm_result_data”表中(它有两个属性:id是int(11)AUTO_INCREMENT NOT NULL和表的主键; result_list是文本NULL)。我写了下面的代码来插入数据进入“pfm_result_data”表:

INSERT INTO pfm_result_data (result_list) VALUES (here is sql sentence which I wrote above)

但是,我无法将数据插入“pfm_result_data”表中。你能帮我纠正我的插入句吗? ...

非常感谢!

致以最诚挚的问候,

安华

2 个答案:

答案 0 :(得分:1)

使用insert . . . select

insert into pfm_result_data(result_list) 
    <your query here>;

您不需要VALUES关键字。

答案 1 :(得分:0)

INSERT .. SELECT语句:

INSERT INTO pfm_result_data 
    (
     your_field
    ) 
    SELECT replace(concat(concat(concat(concat(concat(concat(server_name,':'),server_id),':'),1),'='), flag), ',', '') AS result
    FROM (SELECT f.name server_name,f.id server_id, group_concat(concat(concat(concat(concat(concat(concat(sgk.NAME,';') ,sgk.id),';'),1),';'),sgk.nagios_id ),'|') as flag
     FROM complex_check cc,lnksinglechecktocomplexcheck lk,single_check sgk,functionalci f ,lnkconfigurationitemtosinglecheck lkcg
    WHERE cc.id = lk.complex_check_id AND sgk.id = lk.single_check_id AND sgk.id = lkcg.single_check_id AND lkcg.config_item_id = f.id GROUP BY f.NAME) x