postgresql 从一个表中的JSONB数组列到另一个表中的字段的键上连接SQL表

bhmjp9jg  于 4个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(84)

我有一个users表,它有一个jsonb数组类型的cart列,例如:

[{"product_id": 1, "qty": 2}, 
 {"product_id": 2, "qty": 3}]

字符串
products表,其主键为product_id
我想检索所有的产品,目前在文件中的购物车列的用户表。

rkkpypqq

rkkpypqq1#

您可以使用jsonb_to_record等内置函数来扩展products jsonb并连接到products表。即:

select p.product_id, products.name, p.qty
from usercarts uc,
     lateral jsonb_to_recordset(uc.products) as p(product_id int, qty int)
         left join products on p.product_id = products.product_id
where user_id = 1;

字符串
DBFiddle demo

相关问题