在医院的数据库中工作。 我有一张患者表,另一份包含病历。 表医疗记录,有耐心_id。 由于系统中的错误,许多患者已被插入两次或更多次,具有相同的id。 我试图创建一个mysql查询,允许我删除/检查在患者表中重复的患者,但前提是我不在病历表中。
类似的东西:
(select * from patients group by id having count(id)>1 as p)
where patient_id not in (select patient_id from history)
上述查询是符号的,但不起作用。
答案 0 :(得分:0)
选择patients
以外的所有重复history
的一种方法是使用where not exists
:
select p.id
from patients p
where not exists (
select h.patient_id
from history h
where h.patient_id=p.id
)
group by p.id having count(p.id) > 1
另一种方法是使用not in
:
select id
from patients
where id not in (
select patient_id from Posts
WHERE patient_id IS NOT NULL
group by patient_id
)
group by id having count(id) > 1