Tengo una consulta bastante complicada en mi base de datos PostgreSQL que abarca 4 tablas a través de una serie de subconsultas anidadas. Sin embargo, a pesar de la apariencia y configuración ligeramente engañosa, en última instancia devolverá dos columnas (de la misma tabla, si eso ayuda a la situación) basándose en esa coincidencia de dos parámetros externos (dos cadenas deben coincidir con campos en tablas diferentes). Soy bastante nuevo en el diseño de bases de datos en PostgreSQL, así que sé que existe algo aparentemente mágico llamado Views, y parece que podría ayudarme aquí, pero quizás no.¿Pasa los parámetros "WHERE" a la vista de PostgreSQL?
¿Hay alguna manera de mover mi consulta compleja dentro de una vista y de alguna manera simplemente pasarle los dos valores que necesito para que coincida? Eso simplificaría en gran medida mi código en el front-end (al cambiar las complejidades a la estructura de la base de datos). Puedo crear una vista que envuelva mi consulta de ejemplo estático, y eso funciona bien, sin embargo, eso solo funciona para un par de valores de cadena. Necesito poder usarlo con una variedad de valores diferentes.
Por lo tanto, mi pregunta es: ¿es posible pasar parámetros a una Vista estática y hacer que se vuelva "dinámico"? O tal vez una Vista no es la forma correcta de abordarlo. Si hay algo más que funcione mejor, ¡soy todo oídos!
* Editar: * a lo solicitado en los comentarios, aquí está mi pregunta tal como está ahora:
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;
Los parámetros son fijados apagado por ciento símbolos anteriores.
Nos puede ayudar a comprender mejor si fue capaz de publicar algunos fragmentos de código –