请教关于sql 中 delete from 删除以子查询中的数据的问题

2025-01-05 00:11:52
推荐回答(4个)
回答1:

我看你这几个表好像有主子表关联,所以不能直接从SS中删,删了数据库会报错,要先去子表中删了要删的记录,消除子记录之后才能删除主表。
先删Game 然后删area 然后删 server 最后才能删login中的数据

回答2:

你要是只要删除ss表 中的数据
直接用以下的方法就可以了
delete ss from dbo.Login ss
inner join Server gs on ss.ServerId=gs.ServerId
inner join Area ga on gs.AreaId=ga.AreaId
inner join Game g on ga.GameId=g.GameID
where g.GameId=55 and ss.LoginDateId=20010208 and gs.ServerId=36

回答3:

delete from dbo.Login ss
where ss.date=20010208
and ss.Serverid =
(select top 1 gs.Serverid
from Server gs,Area ga,Game g
where ga.Areaid =gs.Areaid
where g.Gameid =55 and ga.Gameid =g.Gameid)

回答4:

delete from dbo.Login ss where
exists (
select 1 from Server gs, Area ga,Game g
where gs.AreaId=ga.AreaId
and ga.GameId=g.GameID
and g.GameId=55 and ss.LoginDateId=20010208 and gs.ServerId=36
and ss.ServerId=gs.ServerId
);