如何将查询结果插入mysql中的table?
How can I insert the query result into a table in mysql?
我在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" table(其中有两个 attributes:id is int(11) AUTO_INCREMENT NOT NULL 和 table;result_list is text NULL ).我写了下面的代码来插入数据到 "pfm_result_data" table:
INSERT INTO pfm_result_data (result_list) VALUES (here is sql sentence which I wrote above)
但是,我无法将数据插入 "pfm_result_data" table。你能帮我改一下插入的句子吗? ...
非常感谢!
此致,
安华
使用insert . . . select
:
insert into pfm_result_data(result_list)
<your query here>;
您不需要 VALUES
关键字。
插入.. 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
我在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" table(其中有两个 attributes:id is int(11) AUTO_INCREMENT NOT NULL 和 table;result_list is text NULL ).我写了下面的代码来插入数据到 "pfm_result_data" table:
INSERT INTO pfm_result_data (result_list) VALUES (here is sql sentence which I wrote above)
但是,我无法将数据插入 "pfm_result_data" table。你能帮我改一下插入的句子吗? ...
非常感谢!
此致,
安华
使用insert . . . select
:
insert into pfm_result_data(result_list)
<your query here>;
您不需要 VALUES
关键字。
插入.. 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