首页 > 解决方案 > 使用同一表 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 行。

我很难弄清楚这一点,并且想知道解决这个问题的最有效方法是什么?先感谢您!

标签: sql

解决方案


您可以按如下方式使用更新和相关子查询:

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)

推荐阅读