我对我的 PostgreSQL 数据库有一个相当复杂的查询,它通过一系列嵌套子查询跨越 4 个表。然而,尽管外观和设置看起来有点棘手,但最终它将基于两个外部参数的匹配(两个字符串需要与不同表中的字段匹配)返回两列(来自同一个表,如果这有助于这种情况)。我对 PostgreSQL 中的数据库设计相当陌生,所以我知道这个看似神奇的东西叫做 Views 存在,它似乎可以帮助我,但也许不是。
有什么方法可以将我的复杂查询移动到视图中,并以某种方式将我需要匹配的两个值传递给它?这将大大简化我在前端的代码(通过将复杂性转移到数据库结构)。我可以创建一个包含我的静态示例查询的视图,它工作得很好,但是只适用于一对字符串值。我需要能够将它与各种不同的值一起使用。
因此,我的问题是:是否可以将参数传递给其他静态视图并使其变为“动态”?或者也许视图不是处理它的正确方法。如果还有其他更好的方法,我会全力以赴!
*编辑:*根据评论中的要求,这是我现在的查询:
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;
参数由上面的百分比符号设置。