SQL中的关联更新和关联删除
在SQL中,经常用到关联查询,比如select a.* from A a inner join B b on a.PId=b.FId where 条件,SQL中也支持类似的关联更新和关联删除。
关联更新语法:
update a set a.字段=” from A a inner join B b on a.PId=b.FId where 条件
关联删除语法:
delete from a from A a inner join B b on a.PId=b.FId where 条件
注解:A,B为表名,a.PId为A表的主键,B.FId为B表的外键,关联A表
通过上面的语法,可以发现from 后面是一样的。
下面是我写的一个小例子。
建立两个表:用户表 User和博客表 Blog,如下图所示:
执行以下脚本插入测试数据:
insert into [User](UserName,[Password],Memo) values (‘张三’,’123456′,”)
insert into [User](UserName,[Password],Memo) values (‘李四’,’123456′,”)
insert into [User](UserName,[Password],Memo) values (‘王五’,’123456′,”)
insert into Blog(Title,UserId) values (‘标题1′,1)
insert into Blog(Title,UserId) values (‘标题2′,2)
insert into Blog(Title,UserId) values (‘标题3′,3)
insert into Blog(Title,UserId) values (‘标题4′,3)
insert into Blog(Title,UserId) values (‘标题5′,3)
执行更新操作:
将发表了博客标题为“标题1”的用户的备注设置为”发表了一篇名为(标题1)博客的用户”,SQL如下:
update u set u.Memo=’发表了一篇名为(标题1)博客的用户’ from [User] u
inner join Blog b on u.UserId=b.UserId where b.Title=’标题1′
执行删除操作:
删除UserId为3的用户发表的所有博客,SQL如下:
delete from b from Blog b inner join [User] u on u.UserId=b.UserId where u.UserId=3
上面的关联删除可以直接写成delete from Blog where UserId=3,这里只做演示用。
作者:程序旅途
出处:https://www.cnblogs.com/nianming/archive/2012/09/26/2703651.html
版权:本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!