2015-12-21 80 views
1

我不知道如何執行以下操作。將值插入到具有連接條件的新表中

我創建新表name.table1

而且我喜歡到特定的列插入到新表。 這是我嘗試使用的代碼,但沒有奏效。

Insert into name.table1 
SELECT 
account.STRING0, 
activity.CONTACT, 
account.STRING2, 
activity.TEMPLATE, 
activity.NAME , 
activity.EXECUTION, 
activity.SENDDATE, 
Activity.OPENDATE, 
Activity.CLICKDATE 
FROM 
    db.1_account account 
Join 
    db.2_activity activity 
    ON 
    (account.object = activity.contact) 
left JOIN 
    db.VAL val1 
     ON val1.obj_row_id = activity.CAMPAIGN AND (val1.FIELD in(850)) 
left JOIN 
    db.VAL val2 
     ON val2.obj_row_id = activity.CAMPAIGN AND (val2.FIELD in(851)) 

這個插入查詢有些問題,但我找不到什麼。

+1

您是試圖從選擇查詢結果中創建新表,還是嘗試將結果插入到現有表中。還提到你正在使用的'RDBMS' –

+1

(1)用你的數據庫標記問題。 (2)編輯問題幷包含您收到的錯誤。 (3)在'insert'中顯示'table1'的結構或'table1'的列。 –

+0

我創建了空白表只是爲了這個插入,所以我可以將所有的列數據放到新的空白表中 – N2hvits

回答

1

根據您的評論,您希望根據結果創建新表格。使用INTO條款

SELECT 
account.STRING0, 
activity.CONTACT, 
account.STRING2, 
activity.TEMPLATE, 
activity.NAME , 
activity.EXECUTION, 
activity.SENDDATE, 
Activity.OPENDATE, 
Activity.CLICKDATE INTO NEW_TABLE 
FROM 
    db.1_account account 
Join 
    db.2_activity activity 
    ON 
    (account.object = activity.contact) 
.... 
+0

當我這樣做時 它給了我第二行STRING0找不到的錯誤。 我是否必須將所有列都放入新表格中。 Aka將這些列手動添加到新表中或者我應該怎麼做? – N2hvits

+0

你有沒有在你的新表中名爲'STRING0'的列 –

+0

還沒有,我希望我可以用一個查詢來做到這一點,導入數據並將列帶到新表 – N2hvits

1

創建一個空白表無關,而與插入數據到表中沒有提到的列。

你說你想插入到特定的列中,但是你沒有提到你插入數據的表的列名。

任何方式,假設這是你想實現的,我希望下面的代碼可以幫助你。

Insert into name.table1(yourcolumn1,yourcolumn2,...)SELECT account.STRING0, activity.CONTACT,account.STRING2,activity.TEMPLATE,activity.NAME ,activity.EXECUTION,activity.SENDDATE,Activity.OPENDATE,Activity.CLICKDATE FROM 
db.1_account account Join 
db.2_activity activity 
ON 
(account.object = activity.contact) left JOIN 
db.VAL val1 
    ON val1.obj_row_id = activity.CAMPAIGN AND (val1.FIELD in(850)) left JOIN db.VAL val2 
    ON val2.obj_row_id = activity.CAMPAIGN AND (val2.FIELD in(851))