sql - 如何通过内部联接更新 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
我该如何开始?
解决方案
推荐阅读
- javascript - 如何强制在浏览器而不是应用程序中打开外部链接?
- c# - 我想在 Xamarin 中制作增量游戏,并且我制作了一些计时器,这些计时器给了我一个异常错误
- google-apps-script - 基于动态和变化的源表创建静态概览表
- java - XSD 到 java bean
- mysql - 有没有更好的方法从 mysql 获取 ISO Ttimestamp?
- haskell - Haskell 实例包装 []
- android - 原因:org.gradle.api.internal.plugins.PluginApplicationException:无法应用插件 [id 'com.android.application']
- php - 如何使用 filepond 发送文件?
- c++ - 如何正确划分方阵?
- python - 一旦达到训练,Keras 就会保存最佳模型