如何 "insert into table1 (col1, col2) values select col1 from table2 , select col2 from table3"

How to "insert into table1 (col1, col2) values select col1 from table2 , select col2 from table3"

好吧,如果可以的话,我有一个问题。我有一个名为 "customer" 的 table,有 2 列 "customer, source"。

我有第二个 table 叫做 "balance" 有超过 10 列,其中一列叫做 "cname"。

而第 3 个 table 称为 info 也有 10 多列,但只有一行包含公司信息,其中一列称为 "source"。

因此 table 如下所示:

Table "balance":

信息table:

所以我想要的是从上面的两个 table 插入客户 table 所以结果必须是这样的:

我试过下面的代码,但它给我一个错误

insert into customer values 
    select cname 
    from balance, select source from info

你只想要一个 cross join 吗?

select b.cname, i.source
from balance b cross join
     info i;

对于insert,你会做:

insert into customers (customer, source)
    select b.cname, i.source
    from balance b cross join
         info i;

编辑(供您评论):

insert into customers (customer, source)
    select b.cname, i.source
    from balance b cross join
         info i
    where not exists (select 1 from customers c where c.customer = b.cname);