如何从1个表中删除一些与其他表匹配的重复行

时间:2014-01-31 09:50:45

标签: java php mysql sql duplicates

DELETE FROM final WHERE rajuvas。finalaccession = rajuvas.journal。accession

我们在名为final和journal的表中都有一些常见的数据现在我想删除最终表中日志表中的那些条目。我们在这些表的“加入”中有1个共同字段。例如,如果入口18572在两个表中,那么我希望删除由登记号18572组成的最终表记录。

3 个答案:

答案 0 :(得分:0)

试试这个

DELETE final 
   FROM final 
   LEFT JOIN journal ON final.accession=journal.accession 
   WHERE journal.accession IS NOT NULL;

或者这个

DELETE FROM final 
   USING final, journal 
   WHERE final.accession=journal.accession;

final - 将删除行的表

journal - 检查记录存在的表

答案 1 :(得分:0)

你可以放弃你不想要的那张桌子。尝试此脚本DROP TABLE database_name.table_name;“final”

答案 2 :(得分:0)

替代:

DELETE FROM final f WHERE exists(select accession from rajuvas.journal j where j.accession = f.accession)