我当前正在构建一个查询以从我的数据库中检索一些数据,我需要访问存储在数组中的文档,这就是表的方式
crm_company
外观:
+ company_id + documents_avaiable +
- 1 - [71788176,98705180,21468287,...] -
- 2 - [11218494,12825726,10353038,...] -
我还有一个crm_user
文件供用户使用,它看起来像这样:
+ user_document + email +
- 71788176 - abc@email.com -
- 98705180 - def@email.com -
- 11218494 - hef@email.com -
最终结果是:
+ user_document + email + company +
- 71788176 - abc@email.com - 1 -
- 98705180 - def@email.com - 1 -
我刚刚尝试过以下操作:
select documents_avaiable[0] from crm_company where crm_company.id = 1
但是我仍然无法从数组中检索文档。
在此先感谢您的提示或帮助。
答案 0 :(得分:1)
如果按照Laurenz Albe的评论中的建议为时已晚,请执行以下操作:
使用查询(或创建视图)对公司文档列表进行规范化
create view company_documents as
select t.company_id, l.document_id
from crm_company t
cross join lateral
(
select unnest(t.documents_avaiable) as document_id
) l;
通过document_id
使用join
select cd.document_id user_document, cd.company_id company, d.email
from company_documents cd join crm_user d
on cd.document_id = d.user_document;