ORACLE中通过引用2个表插入多行

问题描述 投票:0回答:1

我有 2 个表格,数据如下

表1:产品交易

Product Id | TransactionId
1          | 90
1          | 91 
2          | 91 
2          | 93 

表 2:产品注册

Product Id | EnrollmentId
1          | 31
1          | 32 
2          | 41 
2          | 43 

我有一个名为 ProductEnrollmentTransaction 的新表,我必须通过引用表 1 和 2 来插入行。首先,从表 2 中获取 Product Id,然后从表 1 中获取 TransactionId,然后插入到表 3 中。例如,Enrollment 31 和32 与 Product Id 1 关联,Product Id 与 TransactionId 90 和 91 关联。因此,新表必须具有基于产品 Id 映射的 transactionId 和 EnrollmentId。

TransactionId | EnrollmentId
90             | 31 
91             | 31
90             | 32 
91             | 32
91             | 41
93             | 41
91             | 43
93             | 43

如何在Oracle(19C)中通过引用2个表编写插入查询?该查询必须一直到达生产环境。请帮助我们。

sql oracle
1个回答
0
投票

使用

INSERT INTO ... SELECT ...
INNER JOIN
这两个表:

INSERT INTO ProductEnrollmentTransaction (TransactionId, EnrollmentId)
SELECT t.TransactionId,
       e.EnrollmentId
FROM   ProductTransaction t
       INNER JOIN ProductEnrollment e
       ON (t.ProductID = e.ProductID)
© www.soinside.com 2019 - 2024. All rights reserved.