4つのテーブルがあり、そのうちの2つから値を取得する必要があります。
ポリシーpolicy_id、template_id
quote quote_id、policy_id
quote_clause quote_clause_id、quote_id
quote_clause_variable quote_clause_variable_id、quote_clause_id、variable_name、value
-
各ポリシーpolicy_idには、quotequote_idの2〜3レコードがあります。
各quotequote_idには、quote_clause
quote_clause_idの100〜200レコードがあります。quote_clause_idthas600-700のquote_clause_variableの各レコード。
特定のtemplate_idが28であるすべてのpolicy_idを取得しようとしています。そこから、変数名が「R01011C1」であるquote_clause_variable値を取得します。
私はこの時点で少し迷っています。以下のクエリはどちらもほぼ正しいものではありません。
SELECT policy.policy_id, quote_clause_variable.value
FROM mciaweb.policy
LEFT JOIN mciaweb.quote ON policy_id = policy_id
LEFT JOIN mciaweb.quote_clause ON quote_id = quote_id
LEFT JOIN mciaweb.quote_clause_variable ON quote_clause_id = quote_clause_id
WHERE policy.template_id = '28'
AND variable_name = 'R01011C1';
select
(select value from mciaweb.quote_clause_variable
where variable_name in ('R01011C1')
and quote_clause_id in
(select quote_clause_id from MCIAWEB.quote_clause where quote_id in
(select quote_id from MCIAWEB.quote where policy_id in
(select policy_id from mciaweb.policy where template_id in ('28')
)))) situation,
policy_id
from mciaweb.policy where template_id = '28'
;
これについて助けてくれてありがとう。