私は古いヘルプデスクチケットシステムを持っており、新しいチケットシステムとの間でデータを移植する任務を負っています。これが私が実行しているクエリです:
DROP TABLE IF EXISTS final_table;
CREATE TABLE final_table (
name varchar(40),
ticketID BIGINT,
ticket_id BIGINT,
subject varchar(255),
priority_id varchar(10),
status varchar(10),
updated DATE,
created DATE,
closed DATE,
response LONGTEXT
);
ALTER TABLE final_table ADD PRIMARY KEY(ticket_id);
INSERT INTO final_table
SELECT name, ticketID, ticket_id, subject, priority_id, status, updated, created, closed, response
FROM ost_ticket;
ALTER TABLE final_table ADD response LONGTEXT;
ALTER TABLE final_table ADD impact varchar(40);
ALTER TABLE final_table ADD category varchar(20);
ALTER TABLE final_table ADD queue varchar (20);
UPDATE final_table SET impact = "1 person can't work";
UPDATE final_table SET category = "Other";
UPDATE final_table SET queue = "Help Desk";
INSERT INTO final_table( response )
SELECT GROUP_CONCAT(ost_ticket_response.response SEPARATOR "\n\n") AS response
FROM ost_ticket_response
GROUP BY ost_ticket_response.ticket_id;
古い発券ソフトウェアでは、PKがost_ticket_responseテーブルに複数回リストされているため、最後の4行でGROUP_CONCAT呼び出しを行う必要があります。基本的に、同じticket_idを持つエントリを組み合わせて、作成している一時テーブルにプルしようとしています。現在のクエリを実行すると、応答列にnullの結果が入力されるだけです。何か案は?