【问题标题】:Trouble joining tables while inserting them into new table.将表插入新表时出现连接问题。
【发布时间】:2026-01-19 14:10:02
【问题描述】:

现在我正在尝试将来自两个不同表的信息合并到一个新表中。

这是我现在拥有的。

insert into invoices_paid(InvoiceNumber,InvoiceDate,InvoiceTotal) 
select InvoiceNumber,InvoiceDate,InvoiceTotal
from Invoices
insert into invoices_paid(AccountNo, InvoiceLineItemAmount, InvoiceLineItemDescription) 
select AccountNo, InvoiceLineItemAmount, InvoiceLineItemDescription 
From InvoiceLineItems

图片帮助。Query

我需要将红框中的信息与他们各自的信息与左侧的列相匹配。我对加入很陌生,但我想我已经很接近了。任何人都可以帮忙吗?

【问题讨论】:

  • 该屏幕截图看起来非常像 SQL Server Management Studio。标记了错误的 RDMS?

标签: mysql sql join insert


【解决方案1】:

加入 InvoiceNumber 上的 Invoices 和 InvoiceLineItems 表,并将其用作 INSERT 语句的 SELECT 子句的数据源。如:

insert into invoices_paid (InvoiceNumber,InvoiceDate,InvoiceTotal,
    AccountNo, InvoiceLineItemAmount, InvoiceLineItemDescription)
select
    inv.InvoiceNumber,InvoiceDate,InvoiceTotal,
    AccountNo, InvoiceLineItemAmount, InvoiceLineItemDescription
from 
    Invoices as inv
    inner join InvoiceLineItems as li on li.InvoiceNumber = inv.InvoiceNumber;

【讨论】:

    【解决方案2】:

    您可以使用 select 在新表中插入值,以从您正在考虑的其他表中查找值,您还必须创建一个条件并考虑根据您必须创建行的条件连接两个表:

    insert into invoices_paid(InvoiceNumber,InvoiceDate
     ,InvoiceTotal,AccountNo, InvoiceLineItemAmount, InvoiceLineItemDescription)
     values (select i.InvoiceNumber,i.InvoiceDate,i.InvoiceTotal
     , b.AccountNo, b.InvoiceLineItemAmount, b.InvoiceLineItemDescription
     from Invoices as i join InvoiceLineItems
     as b where i.InvoiceNumber = b.AccountNo )
    

    【讨论】: