首页 > 解决方案 > 如何通过 PostgreSQL 更新特定列的特定行以反映另一个表中的值?

问题描述

我有两个包含一些列的表:

  1. 项目
    1. item_id
      1. 9ef3b1e2-b0d3-480a-ba60-3616712d68f1
      2. 11111111-b0d3-480a-ba60-3616712d68f1
    2. item_data_id
      1. fd55b8c5-ebf9-5e6d-8d73-8b63111d5196
      2. 22222222-ebf9-5e6d-8d73-8b63111d5196
  2. 项目数据
    1. item_data_id
      1. 无效的
      2. 无效的
    2. item_id
      1. 9ef3b1e2-b0d3-480a-ba60-3616712d68f1
      2. 11111111-b0d3-480a-ba60-3616712d68f1

表一已包含 item_id 的值,表二已包含填充了唯一 ID 的 item_data_id 和 item_id 的值(其中两者的 item_id 值已经匹配)。如何更新 items.item_data_id(表 1)以反映 item_data.item_data_id(表 2)中已经存在的值,而不更新表 2 列中的每一行?

标签: sqldatabasepostgresql

解决方案


您可以尝试使用连接作为

update items 
set item_data_id  = item_data.item_data_id 
from item_data 
where  items.item_id = item_data.item_id

推荐阅读