Я написал следующий sql-код в mysql:

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
Anwar Ahmat 11 Мар 2015 в 14:12

2 ответа

Лучший ответ

Используйте insert . . . select:

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

Вам не нужно ключевое слово VALUES.

2
Gordon Linoff 11 Мар 2015 в 11:14

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
0
Galma88 11 Мар 2015 в 11:17