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

如何基于匹配的T1_id将Table1的expiry_date填充到Table2新列

匹配关联表更新Table2的expiry_date列

需求说明

Table2已新增expiry_date列,需在Table2的T1_id与Table1的Id匹配时,将Table1的expiry_date字段值填充到Table2的对应列中。

表结构与数据

Table1

Idplaceexpiry_date
10xyz2022-09-12

Table2(expiry_date为新增列)

Oiduseridexpiry_dateT1_id
212310

正确SQL方案

你之前尝试用INSERT语句是不合适的,因为我们要更新已有记录的列值,而非插入新行。正确的做法是使用UPDATE结合JOIN实现:

标准SQL写法

UPDATE Table2
SET expiry_date = Table1.expiry_date
FROM Table1
WHERE Table2.T1_id = Table1.Id;

MySQL写法

UPDATE Table2
JOIN Table1 ON Table2.T1_id = Table1.Id
SET Table2.expiry_date = Table1.expiry_date;

PostgreSQL写法

与标准SQL写法一致,也可采用显式JOIN形式:

UPDATE Table2
SET expiry_date = Table1.expiry_date
FROM Table1
WHERE Table2.T1_id = Table1.Id;

语句说明

  • 仅更新Table2中T1_id能在Table1找到对应Id的记录
  • 未匹配到的Table2记录,其expiry_date列值保持原有状态(NULL或初始值)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:50:35