我在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”表中。你能帮我纠正我的插入句吗? ...
非常感谢!
致以最诚挚的问候,
安华
答案 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