使用Join条件将值插入到新表中

时间:2015-12-21 11:47:19

标签: sql

我不知道该怎么做。

我创建了新的表名.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))

这个插入查询有问题,但我找不到。

2 个答案:

答案 0 :(得分: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)
....

答案 1 :(得分: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))