我有 2 个表。
VoiceZone1
: 它包含 4 列(Uname, TID, Res_Msg, Req_Time)VoiceZone2
: 它也包含 (Uname, TID, Res_Msg, Req_Time)
有另一个表VoiceZoneLog
。
想要将 VoiceZone1
的所有列复制到 VoiceZoneLog
和 的两列
到 Res_Msg
, Req_Time
VoiceZone2VoiceZoneLog
表。
请指导我使用sql/mysql。
看看我的查询:
INSERT INTO VoiceZoneLog
SELECT A.REQ_TIME,
B.RES_TIME,
A.USER_NAME,
A.TID,
A.REQ_MSG,
B.RES_MSG
FROM VoiceZone1 A,
VoiceZone2 B
WHERE A.TID=B.TID AND
A.REQ_MSG='CALL_LOGS_HISTORY 14'
所以它执行得很好,但我的任务是想优化它。 我想要任何其他方式。所以请指导我。
最佳答案
您的查询很好,但最好使用标准连接语法编写并列出插入
的列:
INSERT INTO VOICEZONE_LOGS (REQ_TIME, RES_TIME, USER_NAME, TID, REQ_MSG_A, REQ_MSG_B)
SELECT A.REQ_TIME, B.RES_TIME, A.USER_NAME, A.TID, A.REQ_MSG, B.RES_MSG
FROM VZ_LOGS_REQ A join
VZ_LOGS_RESP B
ON A.TID = B.TID
WHERE A.REQ_MSG='CALL_LOGS_HISTORY 14';
(插入的列名可能有误,我只是猜测。)
您可以通过索引提高性能。我会推荐:vz_logs_req(req_msg, tid)
和 vs_logs_resp(tid)`。
关于mysql - 将2个表的数据复制到1个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18509192/