首页 > 解决方案 > 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

标签: sqlsql-servertsql

解决方案


在 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

推荐阅读