sql выберите записи, которые не имеют отношения в третьей таблице - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть три таблицы

CLAIMS_TB

enter image description here

CLAIMS_RISK_TB

enter image description here

VEHICLE_TB

enter image description here

И тогда мне нужен этот результат ниже:

enter image description here

Кто может мне помочь или поделиться со мной запросом, который будет использоваться?Примечание: если код 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 голосов
/ 28 сентября 2018

В конце концов я нахожу решение, запрос ниже работает:

select * from CLAIMS_TB  c
JOIN CLAIMS_RISK_TB cr ON( C.CM_INDEX = cr.cr_cm_index) 
LEFT OUTER JOIN VEHICLE_TB v ON (cr.cr_risk_code = v.ai_regn_no);
0 голосов
/ 27 сентября 2018

Я считаю, что это может соответствовать вашим потребностям.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...