将多个表中的行添加到新表sql时出现问题

将多个表中的行添加到新表sql时出现问题,sql,oracle,toad,Sql,Oracle,Toad,我正在使用toad for oracle,我想从多个表中获取数据并将它们插入到一个新表中 这是我的剧本: insert into mydb.testTable2 (FAO, Company, Cost_Center, Description) select (select FAO from bigdb.wtags), (select DESCRIPTOR from bigdb.wtags), (select cost_center from bigdb.MASTERF

我正在使用toad for oracle,我想从多个表中获取数据并将它们插入到一个新表中

这是我的剧本:

insert into mydb.testTable2 (FAO, Company, Cost_Center, Description)
select (select FAO from bigdb.wtags),
       (select DESCRIPTOR from bigdb.wtags),
       (select cost_center from bigdb.MASTERFILE),
       ''
from bigdb.wtags join bigdb.masterfile on bigdb.wtags.fao = bigdb.MASTERFILE.workday_number
我得到一个错误:

table or view does not exist
我一直在www.w3schools.com上阅读sql,它说insert into语句用于创建新表。 不能使用多个数据源创建新表吗

另外,我是否可以将从同一个表中获取的两条select语句合并为一行? 我试过了,但它给了我一个错误:太多的值和缺少的表达式。 这可能是由于另一个错误造成的吗?

表或视图不存在意味着您在SQL中指定的表或视图在数据库中不存在或存在,但您没有访问它的权限

这意味着以下其中一项不存在:

mydb.testTable2 bigdb.wtags bigdb.MASTERFILE 除此之外,您的查询结构没有真正意义。正如本文所述,您正在查询bigdb.wtags和bigdb.masterfile,但不使用任何结果-而是尝试从其他三个单独的查询中插入。我怀疑你想做的是:

insert into mydb.testTable2 (FAO, Company, Cost_Center, Description)
select bigdb.wtags.FAO,
       bigdb.wtags.DESCRIPTOR,
       bigdb.MASTERFILE.cost_center,
       null
  from bigdb.wtags 
       join bigdb.masterfile 
           on bigdb.wtags.fao = bigdb.MASTERFILE.workday_number
如果要创建表作为insert的一部分,语法略有不同:

create table mydb.testTable2 as
select bigdb.wtags.FAO,
       bigdb.wtags.DESCRIPTOR,
       bigdb.MASTERFILE.cost_center,
       null description
  from bigdb.wtags 
       join bigdb.masterfile 
           on bigdb.wtags.fao = bigdb.MASTERFILE.workday_number

创建表的代码工作正常。唯一的问题是我必须删除空描述行,否则它将抛出一个长度为零的列不允许错误。谢谢