相关疑难解决方法(0)

将"WHERE"参数传递给PostgreSQL View?

我通过一系列嵌套子查询对我的PostgreSQL数据库进行了相当复杂的查询,该数据库跨越4个表.然而,尽管外观和设置略显棘手,但最终它将返回两列(来自同一个表,如果这有助于这种情况)基于两个外部参数的匹配(两个字符串需要与不同表中的字段匹配).我对PostgreSQL中的数据库设计还是比较陌生的,所以我知道这个看似神奇的东西叫做Views,这似乎可以帮助我,但也许不是.

有没有什么方法可以在视图中移动我的复杂查询,并以某种方式只传递我需要匹配的两个值?这将大大简化我在前端的代码(通过将复杂性转移到数据库结构).我可以创建一个包装我的静态示例查询的视图,它可以正常工作,但是只适用于一对字符串值.我需要能够使用各种不同的值.

因此我的问题是:是否可以将参数传递给静态视图并使其变为"动态"?或者View可能不是接近它的正确方法.如果还有其他更好的东西,我全都耳朵!

*编辑:*根据评论中的要求,这是我现在的查询:

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;
Run Code Online (Sandbox Code Playgroud)

参数由上面的百分比符号设置.

sql postgresql stored-procedures view

41
推荐指数
3
解决办法
5万
查看次数

标签 统计

postgresql ×1

sql ×1

stored-procedures ×1

view ×1