У меня довольно сложный запрос в моей базе данных 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;
Параметры устанавливаются символами процента выше.