มีโจทย์อยู่ว่า อยากได้คนไข้ที่มาด้วยโรคหัวใจ (I300 - I529) แต่คนไข้ต้องมีใช่คนไข้ในคลินิกพิเศษ
ตกลงมิใช่ หรือ ว่ามีใช้ ครับ ก็แก้ตามนี้เองนะงับ
ถ้ามีใช้ ก็ใช้ in
select p.clinic,vn.hn,concat(vn.pdx,' ',i.name) as pdxname,
concat(p.pname,p.fname,' ',p.lname) as fullname,p.informaddr,vn.age_y
from vn_stat vn
inner join patient p on p.hn=vn.hn
inner join icd101 i on i.code=vn.pdx
where vn.pdx between 'I300' and 'I529' and vn.vstdate between '2008-03-01' and '2009-03-01'
and vn.hn in (select hn from clinicmember)
group by vn.hn
order by vn.hn asc
ถ้ามิใช่ ก็ใช้ not in
select p.clinic,vn.hn,concat(vn.pdx,' ',i.name) as pdxname,
concat(p.pname,p.fname,' ',p.lname) as fullname,p.informaddr,vn.age_y
from vn_stat vn
inner join patient p on p.hn=vn.hn
inner join icd101 i on i.code=vn.pdx
where vn.pdx between 'I300' and 'I529' and vn.vstdate between '2008-03-01' and '2009-03-01'
and vn.hn not in (select hn from clinicmember)
group by vn.hn
order by vn.hn asc