sql - SQL Server - 从 JOIN 的一侧删除行
问题描述
我有一个查询,它在将一个表连接到另一个表后识别它的孤立行。我用于选择需要删除的行的查询工作正常,并正确选择了需要删除的行:
select fl.Request_ID as Check_RID,
fl.J_Number as Check_JID,
rh.request_ID,
rh.J_Number
from Route_Legs_Route_Header rh
left join Request_Route_Legs fl on fl.Request_ID = rh.Request_ID AND fl.J_Number = rh.J_Number
where rh.Route_ID <> 0
AND fl.Request_ID is null
我的问题是,既然我已经选择了需要删除的行,我如何使用这个连接来实际删除行Route_Legs_Route_Header
?
解决方案
在 SQL Server 中,您可以从表别名中删除。当您已经有一个有效的查询时,这会很方便,就像您一样:
delete rh
from Route_Legs_Route_Header rh
left join Request_Route_Legs fl
on fl.Request_ID = rh.Request_ID and fl.J_Number = rh.J_Number
where rh.Route_ID <> 0 and fl.Request_ID is null
推荐阅读
- docker - Docker 显示错误:无法连接到位于 unix:///var/run/docker.sock 的 Docker 守护程序。docker 守护进程是否正在运行?
- python - 查找 selenium 爬虫的表行类的选择器
- python - 是否允许将方法的输出添加到 self 中?
- docker - Docker 环境变量在 RUN 命令中不可用
- github - 在 GitHub Actions 上,如果特定分支中的特定文件已被推送到,我该如何运行作业?
- linux - 如何修复 $GOPATH/go.mod 存在但不应该存在 - Linux Fedora
- python - 制作一个记录你睡眠时间和天数的函数
- postgresql - postgresql触发器:当表没有获取新数据时如何获取触发器
- python - 我可以在streamlit中使用cgi吗?
- jquery - 如何让 Javascript 处理程序通过 Formsets 识别动态添加的表单?