我有两个表,如下所示..
当我执行select query
时如下
Select EncounterIDP,EncounterNumber from tbPatientEncounter
它回复了180行。和
从tbVoucher中选择VoucherIDP,EncounterIDF
上面的查询返回165行。
但我想执行选择查询,返回我的数据,如EncounterIDP不在tbVoucher中,因为我在下面尝试过选择查询......
Select * from tbPatientEncounter pe
where pe.EncounterIDP not in
(Select v.EncounterIDF from tbVoucher v )
它不会返回任何行。在第一个图像中,它显示EncounterIDP 9 in tbPatientEncounter
,但它没有插入tbVoucher,因为我尝试了选择查询,如
Select * from tbVoucher where EncounterIDF = 9
它返回0行。
我的问题是what is wrong with my above Not In Query.?
答案 0 :(得分:2)
您是否在比较tbVoucher中的正确字段?
尝试使用左连接
Select EncounterIDP,EncounterNumber from tbPatientEncounter
left join tbVoucher on EncounterIDP = EncounterIDF
where EncounterIDF is null
答案 1 :(得分:2)
问题很可能是NULL
中的tbVoucher
值。试试这个:
Select *
from tbPatientEncounter pe
where pe.EncounterIDP not in (Select v.EncounterIDF
from tbVoucher v
where v.EncounterIDF is not NULL
)
答案 2 :(得分:0)
叫我一个怀疑论者,因为我没有看到你的查询有任何问题。这真的是在查询中还是为您简化了它?
Select * from tbPatientEncounter pe
where pe.EncounterIDP not in
(Select v.EncounterIDF from tbVoucher v )