关闭

mysql 多表删除

标签: mysqldeletetablejoinnull
980人阅读 评论(0) 收藏 举报
分类:

1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉

  1. DELETE t1 FROM t1,t2 WHERE t1.id=t2.id    或DELETE  FROM t1 USING t1,t2 WHERE t1.id=t2.id

2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉

  1. DELETE t1 FROM t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL
  2.  
  3. DELETE  FROM t1,USING t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL

3、从两个表中找出相同记录的数据并把两个表中的数据都删除掉

  1. DELETE t1,t2 from t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t1.id=25

注意此处的delete t1,t2 from 中的t1,t2不能是别名

如:

  1. delete t1,t2 from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25

在数据里面执行是错误的(MYSQL 版本不小于5.0在5.0中是可以的)

上述语句改写成

  1. delete table_name,table2_name from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25

在数据里面执行是错误的(MYSQL 版本小于5.0在5.0中是可以的)

附:上述语句运行的环境 MYSQL 4.0.2以上

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:397957次
    • 积分:5725
    • 等级:
    • 排名:第4529名
    • 原创:143篇
    • 转载:195篇
    • 译文:0篇
    • 评论:47条