poStresql,string_agg()通过关联表加入

发布于 2025-01-31 17:03:28 字数 1284 浏览 2 评论 0原文

我通过第三个关联表链接了2个表:

TABLE NAME: lot
id |   description  | <other multiple columns> |
1  | descr_string_1 | ...                      |
2  | descr_string_2 | ...                      | 


TABLE NAME: id_class
id | code |   name  |   
1  |  01  | class_1 | 
2  |  02  | class_2 |
3  |  03  | class_3 |


TABLE NAME: association_lot_id_class
lot_id | class_id |
1      |    1     | 
1      |    2     |
2      |    3     |

我正在尝试根据lot包含相关类别上的级别数据的新表格:

TABLE NAME: new_table_lot
id |   description  | <other multiple columns> | class_codes |     class_names    |
1  | descr_string_1 | ...                      |   "01, 02"  | "class_1, class_2" |
2  | descr_string_2 | ...                      |     "03"    |      "class_3"     |

我尝试使用String_agg具有基于其他SOF答案的不同(绝对是错误的)变化(例如 postgresql- /a>),但没有运气

SELECT alic.id_class_id, alic.lot_id, ic.code
  FROM association_lot_id_class alic
  JOIN id_class ic
  JOIN (
    SELECT id_class_id, string_agg(id.code, ',') AS codes 
    FROM codes
    GROUP BY id_class)
 

I have 2 tables linked together via 3rd association table:

TABLE NAME: lot
id |   description  | <other multiple columns> |
1  | descr_string_1 | ...                      |
2  | descr_string_2 | ...                      | 


TABLE NAME: id_class
id | code |   name  |   
1  |  01  | class_1 | 
2  |  02  | class_2 |
3  |  03  | class_3 |


TABLE NAME: association_lot_id_class
lot_id | class_id |
1      |    1     | 
1      |    2     |
2      |    3     |

I'm trying to make a new table based on lot containing concatenated data on related classes:

TABLE NAME: new_table_lot
id |   description  | <other multiple columns> | class_codes |     class_names    |
1  | descr_string_1 | ...                      |   "01, 02"  | "class_1, class_2" |
2  | descr_string_2 | ...                      |     "03"    |      "class_3"     |

I've tried to use string_agg with different (definitely, wrong) variations based on other SOF answers (e.g. PostgreSQL - JOIN on string_agg) but no luck

SELECT alic.id_class_id, alic.lot_id, ic.code
  FROM association_lot_id_class alic
  JOIN id_class ic
  JOIN (
    SELECT id_class_id, string_agg(id.code, ',') AS codes 
    FROM codes
    GROUP BY id_class)
 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文