Mysql 插入';报告"临时"';不在';报告';?

Mysql 插入';报告"临时"';不在';报告';?,mysql,inner-join,Mysql,Inner Join,我有两张桌子: report (reportID, VendorName, VendorID, MfgDate, PurchaseDate, etc.,) 在report表中,reportID是主键 report\u temp具有与report相同的列集,但没有任何约束 我必须将report\u temp中的行插入到report,其中reportID不相同。 我写的是 INSERT INTO report(reportID, VendorName, VendorID, MfgDate, P

我有两张桌子:

report (reportID, VendorName, VendorID, MfgDate, PurchaseDate, etc.,)
report
表中,reportID是主键

report\u temp
具有与
report
相同的列集,但没有任何约束

我必须
将report\u temp中的行插入到report
,其中reportID不相同。 我写的是

  INSERT INTO report(reportID, VendorName, VendorID, MfgDate, PurchaseDate,...) 
      NOT (SELECT reportID, VendorName, VendorID, MfgDate, PurchaseDate,... 
           FROM report INNER JOIN report_temp USING (reportID, VendorName, 
                VendorID, MfgDate,PurchaseDate,...))
我也尝试过在
内使用
子句使用
reportID
,但我无法得到它。。。
如果您尝试与我共享类似的内容。

这将为您提供两个表中存在的ReportID集:

因此,这将为您提供要插入的行:

SELECT * FROM report_temp WHERE reportID NOT IN (SELECT report_temp.reportID FROM report_temp, report WHERE report_temp.reportID=report.reportID)
然后将其放入
报告
表中:

INSERT INTO report SELECT * FROM report_temp WHERE reportID NOT IN (SELECT report_temp.reportID FROM report_temp, report WHERE report_temp.reportID=report.reportID)
INSERT INTO report SELECT * FROM report_temp WHERE reportID NOT IN (SELECT report_temp.reportID FROM report_temp, report WHERE report_temp.reportID=report.reportID)