2013-08-29 59 views
0

我有2個表。將數據從2表複製到1表

  1. VoiceZone1:它包含4列(UNAME,TID,Res_Msg,REQ_TIME)
  2. VoiceZone2:它還包含信息(uname,TID,Res_Msg,REQ_TIME)

有另一個表VoiceZoneLog

想要的VoiceZone1所有列複製到VoiceZoneLog兩列Res_MsgVoiceZone2Req_TimeVoiceZoneLog表。

請指導我使用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' 

因此,正確地執行,但我的任務就是要優化它。 我想要任何其他方式。所以請指導我。

回答

3

您所查詢的是好的,但它會使用標準的連接語法和列出列的insert更好的寫法:(列名可能是錯誤的插入,我只是猜測)

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)`。

相關問題