http://blog.csdn.net/musttieying/archive/2006/06/07/777467.aspx
1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉
- DELETE t1 FROM t1 , t2 WHERE t1 . id = t2 . id 或 DELETE FROM t1 USING t1 , t2 WHERE t1 . id = t2 . id
2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉
- DELETE t1 FROM t1 LEFT JOIN T2 ON t1 . id = t2 . id WHERE t2 . id IS NULL 或
- DELETE FROM t1 , USING t1 LEFT JOIN T2 ON t1 . id = t2 . id WHERE t2 . id IS NULL
3、从两个表中找出相同记录的数据并把两个表中的数据都删除掉
- DELETE t1 , t2 from t1 LEFT JOIN t2 ON t1 . id = t2 . id WHERE t1 . id = 25
注意此处的delete t1,t2 from 中的t1,t2不能是别名
如:
- 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中是可以的)
上述语句改写成
- 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以上