sql选择在第三张表中没有关系的记录

时间:2018-09-27 14:26:58

标签: oracle

我有三个桌子

CLAIMS_TB

enter image description here

CLAIMS_RISK_TB

enter image description here

VEHICLE_TB

enter image description here

然后我需要下面的结果:

enter image description here

谁可以帮助我或与我分享要使用的查询? N.B:如果代码为700,则表示它是车辆,必须填写“ ai_vehicle_use”列,否则必须将其留空,因为“ VEHICLE_TB”表仅包含车辆

这是我尝试过的:

   select 
klm.CM_PL_INDEX,
klm.cm_no,
klmrisk.cr_risk_code,
CASE WHEN klm.CM_PR_CODE = '0700' THEN klmrisk.cr_risk_code ELSE '' END,
 veh.ai_vehicle_use  
from  CLAIMS_TB klm 
JOIN CLAIMS_RISK_TB klmrisk 
  ON (klm.cm_index = klmrisk.cr_cm_index)  
INNER JOIN VEHICLE_TB veh 
  on veh.ai_regn_no = klm.cm_no  
where klm.cm_no='CL/01/044/00001/01/2018' 
or klmrisk.cr_cm_index='86594' 
order by klmrisk.cr_risk_code;

2 个答案:

答案 0 :(得分:0)

我相信这可以满足您的需求。

SELECT
*
FROM CLAIMS_TB AS c
LEFT JOIN CLAIMS_RISK_TB cl ON c.cm_index = cl.cr_cm_index
LEFT JOIN VEHICLE_TB v ON cl.cr_risk_code = v.ai_risk_index

答案 1 :(得分:0)

最后我找到了解决方案,以下查询有效:

public function manager()
{
    return $this->belongsTo('App\User');
}