我有一个表profiles
,其中包含与用户的管理员相关的数据。
一个用户可以有多个级别的经理。
我需要编写一个查询来获取一个用户的所有管理员。
正式的manager_id
存储在text
= A
列中。
表格名称profiles
| 身份证|正文|经理标识|用户标识|
| - ------|- ------|- ------|- ------|
| 1个|A类|二十个|五十|
| 第二章|乙|二十个|五十|
| 三个|A类|二十一|二十个|
| 四个|乙|零|二十个|
| 五个|C级|零|二十个|
| 六个|A类|二十二|二十一|
| 七|乙|零|二十一|
| 九|A类|零|二十二|
例如,
如果user_id=50
那么,50
管理器的是20
20
管理器的是21
21
管理器的是22
21
管理器的是NULL
因此,输出应为20,21,22
同样,如果user_id=20
,则输出应为21,22
我尝试了几个查询,但它没有返回预期的输出。
1条答案
按热度按时间f0brbegy1#
您要查找的递归查询应该具有以下特性:
获得所有匹配项后,可以通过
ARRAY_AGG
按"* user_id *"聚合值。检查here演示。