0

我有 4 个表,需要从其中 2 个表中获取值。

政策policy_id, template_id

报价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有2-3条quotequote_id记录。

  • 每个报价quote_id 有100-200 条quote_clausequote_clause_id 记录

  • 每个quote_clause_id 都有quote_clause_variable 的600-700 条记录。

我正在尝试获取特定 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'
;

非常感谢您对此的任何帮助。

4

1 回答 1

1

如果我了解您要查找的内容,您的第一个查询非常接近。这是我尝试过的:

SELECT p.policy_id, qcv.value 
FROM policy p
INNER JOIN quote q ON p.policy_id = q.policy_id 
INNER JOIN quote_clause qc ON qc.quote_id = q.quote_id 
INNER JOIN quote_clause_variable qcv ON qcv.quote_clause_id = qc.quote_clause_id 
WHERE p.template_id = '28' 
AND qcv.variable_name = 'R01011C1';
于 2012-08-09T22:37:52.077 回答