根据其他2个表更新第3个表列

时间:2015-08-13 11:04:05

标签: sql oracle

我有3张具有以下结构的表:

 ______________
| ContractInfo |
|--------------|
| ContractId   |
| QuotationId  |
| SupplierId   |
|______________|

 ____________
| Quotation  |
|------------|
| Id         |
| ContractId |
|____________|

 ___________________________________
| QuotationInfo                     |
|-----------------------------------|
| QuotationId (References Quotation)|
| SupplierId                        |
|___________________________________|

如果SupplierId的{​​{1}}等于Id,我想将ContractInfo的值从SupplierId复制到QuotationInfoQuotationId QuotationInfo的{​​{1}}和Quotation的{​​{1}}等于ContractId的{​​{1}}。

例如,

假设ContractInfo具有以下数据:

ContractId

假设Quotation具有以下数据:

ContractInfo

并假设ContractId QuotationId SupplierId C-1 Q-1 S-1 C-2 Q-2 S-2 具有以下数据:

Quotation

更新查询后,应填写QuotationInfo SupplierId列,如下所示:

Id   ContractId
Q-1  C-1
Q-2  C-2

无法真正理解我是如何实现这一目标的。 寻求帮助实现我所描述的内容。如果不是完整的解决方案,一些提示也会有所帮助。

3 个答案:

答案 0 :(得分:1)

尝试使用合并

PFImageView

答案 1 :(得分:1)

假设.flex { display: flex; } #left { display: block; background-color: #F5F5F5; width: 300px; height: 300px; transition: opacity 0.8s; /* float: left; */ overflow-y: auto; } QuotationId是唯一的,您可以使用子查询将ContractInfoSupplierId复制到ContractInfo

QuotationInfo

答案 2 :(得分:0)

UPDATE QuotationInfo qi
SET qi.SupplierId = ci.SupplierId
FROM QuotationInfo qi
INNER JOIN Quotation q ON q.Id = qi.QuotationId
INNER JOIN ContractInfo ci ON ci.ContractId = q.ContractId