首页 > 解决方案 > 使用 JSONB 列 postgresql 中的值连接表

问题描述

我在 postgresql 中有两个表。

  1. 第一个(产品)有 sku json 行([149461190])
  2. 第二个(项目)有一个普通的 sku 列

我怎样才能在 sku 上加入他们?我试过这个,但它没有用。无法识别 joinSourcePart 中的 'jsonb_to_recordset' '(' 'ps' 附近的输入

  select * from product ps
, jsonb_to_recordset(ps.sku -> 'ps_sku') as (sku text)
join item v using sku
       

标签: jsonpostgresqljoinselect

解决方案


我希望这个查询对您有所帮助,您可以在dbfiddle中查看数据结构和示例数据

select 
  *
from  
  product p
  cross join jsonb_array_elements_text(p.sku -> 'ps_sku') as j(sku)
  inner join item i on i.sku = j.sku :: numeric

推荐阅读