mysql删除另一个表中不存在的重复行

时间:2014-08-08 13:05:52

标签: mysql records

在医院的数据库中工作。 我有一张患者表,另一份包含病历。 表医疗记录,有耐心_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)

上述查询是符号的,但不起作用。

1 个答案:

答案 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