我使用的是postgres并有2个表,deviceTble
包含以下列:deviceName
,device_id
,type
,deviceOwnerPerson_id
,{{1} }。
另一个表格为deviceAccessPerson_id
,有两列Person_kv
,id
(包含人物信息,但采用JSON格式)。
我想从deviceTble中选择一个查询,并希望通过给定deviceOwnerPersonId和deviceAccessPersonId来使用Person_kv表中人员的first_name和last_name。
以下是我必须从person_kv表中获取数据以获取表格形式的数据:
data
和期望的deviceTble查询:
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还有其他任何方式使用内部查询
有人可以告诉我如何获得所需的结果吗?
答案 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