簡體   English   中英

從逗號分隔列表中的聯接表中獲取多個列值

[英]Get multiple column values from joined table in a comma separated list

我有 3 個表,其中包含如下行:

RESEARCH_REPORTS表:

REPORT_ID   TOPIC
141         My Report Topic Title
142         Another Report Topic Title
143         Yet Another Report Topic Title
...

PROGRAM_AREAS_REPORTS_REL表:

REPORT_ID    PROGRAM_AREA_ID
141          6
141          11
141          12
...

PROGRAM_AREAS表:

PROGRAM_AREA_ID    TITLE
6                  Program Area One
11                 Program Area Two
12                 Program Area Three
...

此查詢目前正在向我返回下面的結果:

SELECT rr.report_id, rr.topic, pa.title as program_areas 
FROM RESEARCH_REPORTS rr 
INNER JOIN PROGRAM_AREAS_REPORTS_REL parr ON rr.report_id = parr.report_id 
INNER JOIN PROGRAM_AREAS pa ON parr.program_area_id = pa.program_area_id 
WHERE rr.report_id = 141

查詢結果

report_id    topic                    program_areas
141          My Report Topic Title    Program Area One
141          My Report Topic Title    Program Area Two
141          My Report Topic Title    Program Area Three

我需要一個 select 查詢,其結果如下:

首選查詢結果

report_id    topic                    program_areas
141          My Report Topic Title    Program Area One, Program Area Two, Program Area Three    

如何在當前查詢中完成此操作?

使用string_agg() function:-

SELECT rr.report_id, rr.topic, string_agg(pa.title,',') as program_areas 
FROM RESEARCH_REPORTS rr 
INNER JOIN PROGRAM_AREAS_REPORTS_REL parr ON rr.report_id = parr.report_id 
INNER JOIN PROGRAM_AREAS pa ON parr.program_area_id = pa.program_area_id 
WHERE rr.report_id = 141
group by rr.report_id, rr.topic

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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