我对PostgreSQL数据库有一个相当复杂的查询,通过一系列嵌套的子查询跨越4个表.然而,尽管外观和设置有点复杂,但最终它将基于两个外部参数的匹配(两个字符串需要与不同表中的字段匹配)返回两列(来自同一个表,如果这种情况有帮助的话).我对PostgreSQL中的数据库设计还比较陌生,所以我知道这个看似神奇的东西叫做视图,它似乎可以帮助我,但也许不能.
有没有什么方法可以将复杂的查询移动到视图中,并以某种方式将需要匹配的两个值传递给它?这将大大简化我的前端代码(通过将复杂性转移到数据库 struct ).我可以创建一个视图来包装我的静态示例查询,它运行得很好,但是它只适用于一对字符串值.我需要能够将它用于各种不同的价值观.
因此,我的问题是:是否有可能将参数传递到一个静态视图中,并使其成为"动态"视图?或者,一种观点不是正确的方法.如果还有其他更好的办法,我洗耳恭听!
*Edit: *根据 comments 中的要求,以下是我目前的问题:
SELECT param_label, param_graphics_label
FROM parameters
WHERE param_id IN
(SELECT param_id
FROM parameter_links
WHERE region_id =
(SELECT region_id
FROM regions
WHERE region_label = '%PARAMETER 1%' AND model_id =
(SELECT model_id FROM models WHERE model_label = '%PARAMETER 2%')
)
) AND active = 'TRUE'
ORDER BY param_graphics_label;
参数由上面的百分比符号设置.