当前位置: 首页 > article >正文

PostgreSQL 连接更新操作

 假设有两个表,table_atable_b,它们有一个共同的列 common_column,我们想要通过连接这两个表并根据某些条件更新 table_a 的列。

-- 创建表 table_a
CREATE TABLE table_a (
    id SERIAL PRIMARY KEY,
    common_column INT,
    data_a VARCHAR(255)
);

-- 创建表 table_b
CREATE TABLE table_b (
    id SERIAL PRIMARY KEY,
    common_column INT,
    data_b VARCHAR(255)
);

-- 插入一些示例数据
INSERT INTO table_a (common_column, data_a) VALUES (1, 'A1'), (2, 'A2'), (3, 'A3');
INSERT INTO table_b (common_column, data_b) VALUES (1, 'B1'), (2, 'B2'), (3, 'B3');

 

现在,我们使用 UPDATE 语句连接这两个表并更新 table_a 的数据:

UPDATE table_a
SET data_a = table_b.data_b
FROM table_b
WHERE table_a.common_column = table_b.common_column;

在这个例子中,我们使用 UPDATE ... FROM ... WHERE 语法。这个语句将 table_adata_a 列更新为 table_b 的对应行的 data_b 列的值,条件是它们的 common_column 列相匹配。

更偏向实际开发的SQL示例:

update table_a set column_a=updatetable.column_a
from (
select column_a,id from table_b where "id" in (select base_id from table_a gausa where column_b is not null and column_c=0 and column_a is null)


) updatetable where table_a.column_b is not null and table_a.column_c=0 and table_a.column_a is null
and updatetable.id=table_a.base_id


http://www.kler.cn/a/157693.html

相关文章:

  • 京东数据分析(京东数据运营):2023年10月咖啡市场销售数据分析(商家销量销额店铺数据)
  • Flink 读写Doris
  • enum 枚举类型
  • 【openssl】RSA 生成公钥私钥 |通过私钥获取公钥
  • SpringBoot——嵌入式 Servlet容器
  • 如何判别使用的junit是4还是5
  • 树莓派外接上显示器以后一直黑屏无画面显示
  • 流媒体方案之FFmpeg——实现物联网视频监控项目
  • Linux系统安装Python3环境
  • 7、Qt延时的使用
  • 解决 Xshell 无法使用 root 账户远程登录 Linux 的问题
  • ffmpeg格式转换 免费使用视频格式转换教程
  • visual studio 2022中使用vcpkg包管理器
  • Java架构师技术架构路线
  • PTA 7-226 sdut-C语言实验-矩阵输出(数组移位)
  • Mysql内联接inner join以后数据条数比原数据表多
  • 小白备战蓝桥杯:Java常用API
  • 【Wireshark工具使用】Wireshark无法抓取TwinCAT的EtherCAT包(已解决)
  • 【Windows】永久屏蔽系统更新
  • 【滑动窗口】LeetCode2953:统计完全子字符串