sql - 如何通过 PostgreSQL 更新特定列的特定行以反映另一个表中的值?
问题描述
我有两个包含一些列的表:
- 项目
- item_id
- 9ef3b1e2-b0d3-480a-ba60-3616712d68f1
- 11111111-b0d3-480a-ba60-3616712d68f1
- item_data_id
- fd55b8c5-ebf9-5e6d-8d73-8b63111d5196
- 22222222-ebf9-5e6d-8d73-8b63111d5196
- item_id
- 项目数据
- item_data_id
- 无效的
- 无效的
- item_id
- 9ef3b1e2-b0d3-480a-ba60-3616712d68f1
- 11111111-b0d3-480a-ba60-3616712d68f1
- item_data_id
表一已包含 item_id 的值,表二已包含填充了唯一 ID 的 item_data_id 和 item_id 的值(其中两者的 item_id 值已经匹配)。如何更新 items.item_data_id(表 1)以反映 item_data.item_data_id(表 2)中已经存在的值,而不更新表 2 列中的每一行?
解决方案
您可以尝试使用连接作为
update items
set item_data_id = item_data.item_data_id
from item_data
where items.item_id = item_data.item_id
推荐阅读
- typescript - 检查空、未定义或空的实用方法
- c# - 通过电子邮件链接自动登录到 .Net Mvc 网站
- amazon-s3 - 从 terraform 上传 AWS S3 中的多个文件
- excel - 是否可以在 Range.Find 中使用通配符 #(single digit) 和 [](charlist)?
- if-statement - 使用 SwiftUI 选择器,我的 MacBook 加热到 50 度
- angular - Angular 8 - 如果参数是属性,则不通过 require() 提供图像
- java - Java:Json Response 类转换异常
- python - Selenium Webdriver (Python) - 单击 div 元素(复选框)
- javascript - 为什么 ('b'+'a'+ + 'a' + 'a').toLowerCase() 'banana' 的结果是?
- sql - SQL Server:带有内部 SELECT 和子 SELECT 的 SUM()。每次都出错