mySQL多表联合删除
来源:互联网 发布:mac镜像 编辑:程序博客网 时间:2024/06/06 03:18
之前的数据库操作都是比较简单的单一增删改查,今天遇到多表通过外键联合,如果主表数据删除,其他从表的数据也必须删除,表结构大致如下
也就是说,如果我删除了book的一条记录,其他三个表与之关联的表都需要同时删除
例如,我要删除的book的guid为?
DELETE b,p,pb,pby FROM book bINNER JOIN print p ON b.guid = p.book_guidINNER JOIN print_binding pb ON p.guid = pb.print_guid INNER JOIN print_binding_year pbyON pb.guid=pby.bind_guidWHERE b.guid = ?
但是这样处理会导致一个问题,如果book中有需要删除的数据,而其他三张表中没有与其关联的数据,那么就不会有任何数据被删除,因为满足相等连接条件没有得到满足(因为其他三张表没有对应的内容啊,怎么可能会满足!)
具体理论可以参考内连接与外连接小结
如果book表一定有数据,而关联的表有可能有数据也有可能没数据的话,我们可以通过左连接删除的方式,把两张表都删除。无论关联的表有没有数据,book表都可以删除成功
DELETE b,p,pb,pby FROM book bLEFT OUTER JOIN print p ON b.guid = p.book_guidLEFT OUTER JOIN print_binding pb ON p.guid = pb.print_guid LEFT OUTER JOIN print_binding_year pbyON pb.guid=pby.bind_guidWHERE b.guid = ?
原理参见内连接与外连接小结
阅读全文
0 0
- mySQL多表联合删除
- MySQL联合多表更新和删除
- MYSQL联合多表更新和删除
- Mysql也可以联合多表更新和删除
- Mysql也可以联合多表更新和删除
- MYSQL多表联合更新
- MYSQL多表联合查询
- Mysql多表联合查询
- mysql 多表联合update
- mysql多表联合查询
- mysql多表联合查询并统计
- 多表联合update[mysql/mssql]
- mysql下updete多表联合更新
- mysql 多表联合查询优化
- mysql 多表联合查询示例
- mysql多表及联合查询
- Mysql数据库多表联合更新
- mysql两表联合查询,一对多
- 笔记图片仓库
- 自动关闭订单
- oracle 静默安装
- NIOS EDS最容易出错的地方
- String类为什么是final
- mySQL多表联合删除
- RTSP请求详解及RTP 基于UDP和TCP协议传输数据的对比
- 模拟银行定期存款
- MYSQL不太熟练的+其他
- js中的call和apply方法
- FPGA论剑
- eclipse&&myeclipse debug调试教程
- 音视频编解码基础知识(1)- 音视频编解码过程
- Unity3D 初识序列化相反序列化