postgresql 基于JSONB列连接更新表

juzqafwq  于 2022-11-23  发布在  PostgreSQL
关注(0)|答案(1)|浏览(138)

我正在尝试更新我的表,但不起作用的代码是

UPDATE A
   SET person_id = B.id 
  FROM B
 WHERE A.info.EmpNumber = B.info.EmpNumber

两个info列都是jsonb类型
A.info看起来像这样

{
  "position": "Data Engineer",
  "EmpNumber": "382159"
}

B.info看起来像这样

{
  "salary": 80000,
  "EmpNumber": "382159"
}

你能给我指一下正确的方向吗?
错误为

ERROR:  missing FROM-clause entry for table A
LINE 4: WHERE
hvvq6cgz

hvvq6cgz1#

您可以只使用->>运算符从相关键中提取值,例如

UPDATE A
   SET person_id = B.id 
  FROM B
 WHERE A.info->> 'EmpNumber' = B.info->> 'EmpNumber'

Demo

相关问题