mysql联表更新与删除的例子

发布时间:2020-09-16编辑:脚本学堂
本文介绍下,mysql中进行联表更新与删除的几个例子,学习下join语法的用法,有需要的朋友大都下。

mysql中,update/delete  where in select 当in的数量很大时,对性能是个很大的挑战。
 
1,mysql的联表更新,例如:
 

复制代码 代码示例:
UPDATE items,month SET items.price='12' WHERE items.id=month.id; 
UPDATE a LEFT JOIN b on a.id=b.a_id SET a.title='aaaaa',b.body='bbbb' WHERE a.id=1

注意:
多表 UPDATE 不可以使用 ORDER BY 或 LIMIT。
 
2,mysql的联表删除

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不能是别名。