首页 > 解决方案 > 如何通过内部联接更新 SQL 中的多个表?

问题描述

我在 SQL 参考、用户和详细信息中有 3 个表,我想做以下事情。阅读 Table Reference 中的 Value 列,然后将其链接到 User 表中的相关行,并从 User 链接到 Details Table 并进行更新。

Reference 
Id Name   Info   Value    Type

1  Name1  Deatils1  A     SE
2  Name2  Deatils2  B     SE
3  Name3  Deatils3  C     SE  
4  Name2  Deatils2  B     SA
5  Name3  Deatils3  C     SA 


User
UserId Type Membership  MemId    Org

1  Typea    Memberb     7
1  Typea    Memberb     7
1  Typea    Memberb     7
2  Typea    Memberb     8
2  Typea    Memberb     8
2  Typea    Memberb     8
2  Typea    Memberb     8
3  Typea    Memberb     9 
3  Typea    Memberb     9

Details
MemberId Vehicle     Expiry     Org

7        vehiclea    Expiry
7        vehiclea    Expiry
7        vehiclea    Expiry
7        vehiclea    Expiry
8        vehiclea    Expiry
8        vehiclea    Expiry
8        vehiclea    Expiry
8        vehiclea    Expiry
9        vehiclea    Expiry
9        vehiclea    Expiry

因此,例如读取 Reference 表中的第一行,即 id =1 与 Value A ,然后获取 User 表中 UserId 为 1 的所有行,然后使用 Value A 更新 Org 列,然后获取由 MemId 链接的 Details 中的 4 行和 MemberId 并使用该值更新 Org 然后当且仅当 Type = 'SE' 时继续 User 表中的 Id = 2 和 Id = 3

输出将类似于

User
UserId Type Membership  MemId    Org

1  Typea    Memberb     7    A
1  Typea    Memberb     7    A
1  Typea    Memberb     7    A
2  Typea    Memberb     8    B
2  Typea    Memberb     8    B
2  Typea    Memberb     8    B
2  Typea    Memberb     8    B
3  Typea    Memberb     9    C
3  Typea    Memberb     9    C
                         
Details
MemberId Vehicle     Expiry     Org

7        vehiclea    Expiry     A 
7        vehiclea    Expiry     A
7        vehiclea    Expiry     A
7        vehiclea    Expiry     A
8        vehiclea    Expiry     B
8        vehiclea    Expiry     B 
8        vehiclea    Expiry     B
8        vehiclea    Expiry     B
9        vehiclea    Expiry     C
9        vehiclea    Expiry     C

我该如何开始?

标签: sql

解决方案


推荐阅读