如何通过PostgreSQL更新特定列的特定行以反映另一个表中的值?

时间:2019-06-12 16:56:45

标签: sql database postgresql

我有两个带有某些列的表:

    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
  1. item_data
    1. item_data_id
    2. item_id
      1. 9ef3b1e2-b0d3-480a-ba60-3616712d68f1
      2. 11111111-b0d3-480a-ba60-3616712d68f1

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

1 个答案:

答案 0 :(得分:1)

您可以尝试将联接用作

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