[英]Accessing array elements in query postgres
我目前正在構建一個查詢以從我的數據庫中檢索一些數據,我需要訪問存儲在數組中的文檔,這就是表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
但我仍然無法從數組中檢索文檔。
在此先感謝您的任何提示或幫助。
如果現在聽從 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;
使用join
通過document_id
訪問其他表中的文檔詳細信息
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.