一連のネストされたサブクエリを介して、4 つのテーブルにまたがる PostgreSQL データベースにかなり複雑なクエリを実行しています。ただし、外観とセットアップが少しトリッキーに見えますが、最終的には、2 つの外部パラメーター (2 つの文字列が異なるテーブルのフィールドと一致する必要があります) の一致に基づいて (状況に役立つ場合は、同じテーブルから) 2 つの列が返されます。私は PostgreSQL でのデータベース設計にかなり慣れていないので、ビューと呼ばれるこの一見魔法のようなものが存在することを知っています。
複雑なクエリをビュー内に移動し、一致させる必要がある 2 つの値を渡す方法はありますか? これにより、フロントエンドのコードが大幅に簡素化されます (複雑さをデータベース構造にシフトすることにより)。静的サンプル クエリをラップするビューを作成できます。これは問題なく機能しますが、文字列値の 1 つのペアに対してのみ機能します。さまざまな異なる値で使用できるようにする必要があります。
したがって、私の質問は次のとおりです。それ以外の場合は静的なビューにパラメーターを渡して、それを「動的」にすることは可能ですか? または、ビューはそれにアプローチする正しい方法ではないかもしれません。他にもっとうまくいくものがあれば、私はすべて耳にします!
*編集:*コメントで要求されたように、現在の私のクエリは次のとおりです。
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;
パラメータは、上記のパーセント記号によって設定されます。