2015-12-21 41 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))