You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于关联表更新SQL Server中TableB的空Event_Id列

关联表更新TableB的空Event_Id字段

你可以通过表关联+条件过滤的方式实现需求,替代手动编写CASE语句,后续TableA新增事件时无需修改更新逻辑,维护更便捷。

针对SQL Server的写法

UPDATE B
SET B.Event_Id = A.Event_Id
FROM TableB B
INNER JOIN TableA A 
    ON B.Extra = A.Event_Name
WHERE B.Event_Id IS NULL
  AND B.Extra IS NOT NULL -- 排除Extra为空的记录,避免无效匹配

针对MySQL的写法

UPDATE TableB B
INNER JOIN TableA A 
    ON B.Extra = A.Event_Name
SET B.Event_Id = A.Event_Id
WHERE B.Event_Id IS NULL
  AND B.Extra IS NOT NULL

关键说明

  1. 用INNER JOIN关联两张表,通过Extra与Event_Name的匹配关系,直接从TableA获取对应Event_Id赋值给TableB
  2. WHERE子句限制仅更新Event_Id为NULL的记录,同时排除Extra为空的记录(比如示例中Ronal的数据),避免无意义的匹配操作
  3. 如果数据库对字符串大小写敏感,可通过大小写转换函数统一匹配规则,示例如下:
    -- SQL Server/MySQL 通用忽略大小写写法
    ON LOWER(B.Extra) = LOWER(A.Event_Name)
    

内容的提问来源于stack exchange,提问作者aasenomad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 22:30:49