簡體   English   中英

在查詢 postgres 中訪問數組元素

[英]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 評論中的建議為時已晚,請執行以下操作:

  1. 使用查詢(或創建視圖)對公司文檔列表進行規范化

    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;
  2. 使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM