sql - 使用同一表 SQL 中的数据更新行
问题描述
我有一张看起来像这样的桌子
消息ID | 对话ID | 校园A | 校园B
1 1 campusA
2 1
3 1
4 1
5 2
6 2
7 2 campusB
正如我们所看到的,多条消息链接到同一个会话 ID,并且我们有一些记录的校园信息。使用此信息,我想更新链接到同一对话 ID 的剩余空行。例如,我可以看到campusA 链接到conversationId 1。使用此信息,我想更新与第一条记录具有相同conversationId 的剩余3 行。
我很难弄清楚这一点,并且想知道解决这个问题的最有效方法是什么?先感谢您!
解决方案
您可以按如下方式使用更新和相关子查询:
Update your_table t
Set t.campusa = (select max(tt.campusa) from your_table tt
Where t.conversarion = tt.conversation)
Where t.campusa is null
And exists (select 1 from your_table tt
Where t.conversarion = tt.conversation and tt.campusa is not null)
推荐阅读
- prolog - 使用prolog查找多条路径的最短距离
- wordpress - 错误的月份会在 WordPress 发布的帖子上自动更新
- typescript - 为什么不能在 Typescript 3 中合并品牌枚举?
- sql-server - SSIS 执行进程任务因 SQL 代理而失败
- ffmpeg - ffmpeg - HDR 到 SDR - 无法为“format=gbrpf32le”找到合适的输出格式
- c++ - C++ 中的 Softmax 实现
- php - 用php增量重命名移动文件
- python - Webdriver - 使用首选项时无法在 Firefox 中使用无头模式
- android - 如何将当前视图传递给视图模型的调用方法?
- javascript - Boostrap 4:模态不会显示在我的反应应用程序上