我有两张桌子。
tbl.A列出了医生及其患者(如将该医生作为初级保健医生的患者)。没有患者分配超过1名医生。
Doctor Patients
x a
x b
y c
y d
tb.B有一份医生和他们在过去一年中遇到的所有患者的清单(医生可以与任何患者见面,无论该患者是否有该医生作为PCP)
表B:
Doctor Date Saw_Patient
R 05-01-2015 x
R 05-01-2015 y
S 02-05-2015 g
S 06-06-2015 x
我基本上想在tbl.B中添加一个列来添加一个指示符,表明医生是否是该患者的PCP
Doctor Patient PCP of Patient
A z Yes
A x No
B j Yes
B i Yes
我怎样才能轻松做到这一点。这样的事情是可能的还是我错过了什么?
select b.doctor
,b.patient
,case when b.patient in (select patient from tblA where a.doctor=b.doctor) then 1 else 0 end as PCP
from tblA a
inner join tblB b
on a.doctor=b.doctor
答案 0 :(得分:4)
您可能需要外部联接:
SELECT b.doctor
,b.patient
,CASE WHEN a.doctor IS NOT NULL THEN 1 ELSE 0 END AS PCP
FROM tblB b
LEFT JOIN tblA a
ON a.doctor=b.doctor
AND a.patient = b.patient