mysql如何将多个表中的ID只为某值的整行数据删掉?

比如我现在有四张表,每个表的列都不一样,但是都有一个ID列,且有的表中ID不作为主键,我现在需要根据ID值在四张表中把ID值为12的行的数据都删掉,该怎么写DELETE语句?请大神指教
图片描述

阅读 3.4k
3 个回答
START TRANSACTION;
    DELETE FROM t1 WHERE id=12;
    DELETE FROM t2 WHERE id=12;
    DELETE FROM t3 WHERE id=12;
    DELETE FROM t4 WHERE id=12;
COMMIT;

# ROLLBACK;  # 如果commit有错,请回滚.
delete t1,t2,t3,t4 from t1 left join t2 on t1.id=t2.id left join t3 on t1.id=t3.id left join t4  on t1.id=t4.id where t1.id=12

你的问题直接四条sql执行就行了
你并不能保证每个表都有你要删的记录 怎么join都可能有问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题