问题描述
我的postgres生产服务器中有一个名为groups
的表,它们有一个名为manager_id
的列。我想要做的是基于管理器的ID创建模拟的查找表。例如,如果我对表groups
有以下行:
| id |manager_id| ... |
| 1 | 1 | .
| 2 | 3 | .
| 4 | 1 |
| 5 | 2 |
| 7 | 2 |
我想访问使group-1
之类的可信表
| id |manager_id| ... |
| 1 | 1 | .
| 4 | 1 | .
或group-2
| id |manager_id| ... |
| 5 | 2 | .
| 7 | 2 | .
我不确定这是否可行,是的,我知道我可以查询,但是出于问题的目的(以及我的非常具体的需求,我很难找到解决方法),我可以吗?做这样的事情?如果是,我是否可以在不复制数据的情况下做到这一点,只需从原始参考文献中提取参考文献即可?
解决方法
通常:只需使用where
子句来过滤您要从中获得结果的管理器:
select *
from groups
where manager_id = 1
您可以向前迈出一步并创建视图:
create view v_groups_1 as
select *
from groups
where manager_id = 1
create view v_groups_2 as
select *
from groups
where manager_id = 2
然后可以像对常规表一样对视图运行查询。