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

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

相关文章:

  • UE4/UE5 材质实现带框圆环
  • 快速搞懂蔚来的换电模式 是新能源车的未来吗
  • Vue2虚拟列表,umy-ui封装
  • 计算机网络之IP篇
  • 生产实践:Redis与Mysql的数据强一致性方案
  • springboot 整合 Spring Security 上篇
  • Dockerfile脚本编写流程及示例
  • 零信任组件和实施
  • RK3288升级WebView版本,替换webview app
  • ODN光纤链路全程衰减如何计算
  • 《python每天一小段》-- (10)爬取小说:斗罗大陆
  • 【C语言】深入理解指针(1)
  • 软件平台架构设计与技术管理之道笔记
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页
  • 时间复杂度为 O(n^2) 的排序算法 | 京东物流技术团队
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • [deviceone开发]-do_Webview的基本示例
  • [译] 怎样写一个基础的编译器
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 30秒的PHP代码片段(1)数组 - Array
  • gcc介绍及安装
  • Git初体验
  • golang中接口赋值与方法集
  • JavaScript的使用你知道几种?(上)
  • mysql innodb 索引使用指南
  • node入门
  • Python实现BT种子转化为磁力链接【实战】
  • Redis中的lru算法实现
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Spring Boot MyBatis配置多种数据库
  • Spring Cloud Feign的两种使用姿势
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 基于webpack 的 vue 多页架构
  • 跨域
  • 前端面试之闭包
  • 实现菜单下拉伸展折叠效果demo
  • 手写一个CommonJS打包工具(一)
  • 微信小程序:实现悬浮返回和分享按钮
  • 一道闭包题引发的思考
  • 移动端 h5开发相关内容总结(三)
  • 移动端解决方案学习记录
  • - 转 Ext2.0 form使用实例
  • gunicorn工作原理
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (LeetCode) T14. Longest Common Prefix
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。