-- 創建臨時表存儲查詢出的數據 drop temporary table if exists childtable; create temporary table childtable (select * from tb_child a where (a.patriarch_id,a.student_id) in (select patriarch_id,student_id from tb_child group by patriarch_id,student_id having count(*) > 1) and child_id not in (select min(child_id) from tb_child group by patriarch_id,student_id having count(*)>1)); select *From childtable drop temporary table childtable; -- 根據條件刪除臨時表格中的數據 delete from tb_child where child_id in (select childtable.child_id from childtable) --查詢出 綁定關系表中 家長id和學生id重復的數據。但是不包含 綁定關系id最小的那一條記錄 select * from tb_child a where (a.patriarch_id,a.student_id) in (select patriarch_id,student_id from tb_child group by patriarch_id,student_id having count(*) > 1) and child_id not in (select min(child_id) from tb_child group by patriarch_id,student_id having count(*)>1) -- 查詢出具有patriarch_id ,student_id 重復的數據(排除id最小的第一條數據) 帶行號 select (@rownum := @rownum + 1) AS rownum ,a.* from tb_child a, (SELECT @rownum := 0) AS rn where (a.patriarch_id,a.student_id) in (select patriarch_id,student_id from tb_child group by patriarch_id,student_id having count(*) > 1) and child_id not in (select min(child_id) from tb_child group by patriarch_id,student_id having count(*)>1) --查詢出具有patriarch_id ,student_id 重復的數據 帶行號 select (@rownum := @rownum + 1) AS rownum ,ci.* from tb_child ci, (SELECT @rownum := 0) AS rn where patriarch_id in (select patriarch_id from tb_child group by patriarch_id,student_id having count(*) > 1)
