如何在选择查询

时间:2017-09-07 11:24:19

标签: sql json postgresql

我使用的是postgres并有2个表,deviceTble包含以下列:deviceNamedevice_idtypedeviceOwnerPerson_id,{{1} }。

另一个表格为deviceAccessPerson_id,有两列Person_kvid(包含人物信息,但采用JSON格式)。

我想从deviceTble中选择一个查询,并希望通过给定deviceOwnerPersonId和deviceAccessPersonId来使用Person_kv表中人员的first_name和last_name。

以下是我必须从person_kv表中获取数据以获取表格形式的数据:

data

和期望的d​​eviceTble查询:

select data :: json ->> 'id' as id
  , data :: json ->> 'name' as first_name
  , data :: json ->> 'surename' as last_name
from Person_kv

我很困惑我在person_kv查询中使用WITH子句然后在这里或者在deviceOwnerPerson_id和deviceAccessPerson_id上逐个加入OR还有其他任何方式使用内部查询

有人可以告诉我如何获得所需的结果吗?

1 个答案:

答案 0 :(得分:1)

从你的描述

你可以加入em:

select deviceName,device_id,type, p.data:: json ->>'name' , p.data:: json ->>'surname' 
from deviceTble d
join Person_kv  p on p.data:: json ->>'id' = deviceOwnerPerson_id::text OR p.data:: json ->>'id' = deviceAccessPerson_id::text