选择/查询"进入" JSON数组

时间:2015-10-27 11:06:28

标签: sql json postgresql squirrel-sql

我有一个PostgreSQL 9.4.5数据库。有一个名为itemtable的JSONB列的表data,其中包含一组信息(为简洁而剥离了大量内容):

{ "items": [
    { "id": 158597 },
    { "id": 156300 },
    (...)
] }

现在,我想获得这些项目集中所有id的列表 - 非正式地可以说SELECT id FROM items FROM data FROM itemtable。我只是设法使用子查询来做到这一点,这显然不是最理想的:

SELECT idlist->>'id' FROM ( 
   SELECT json_array_elements(data::json->'items') AS idlist FROM itemtable 
) AS necessary_subquery_name

我怎样才能减少错综复杂呢?

请注意,我需要在SquirrelSQL中运行它,因此需要::json强制转换。

1 个答案:

答案 0 :(得分:1)

噢,好吧,没关系,我今天肯定错过了一杯咖啡。很明显:

SELECT json_array_elements(data::json->'items')->>'id' FROM itemtable