我有一个应用程序,它生成一个带有调用ID的临时DeletedList表。
在我的数据库中,我有两个表:
我想检索所有用户ID,以便 all 他们的call-id出现在DeletedList表中。
换句话说,我所追求的查询应该不包含那些至少有一个调用不在DeletedList表中的用户ID。
答案 0 :(得分:0)
尝试此查询我希望您只通过阅读表名来理解
CallerID表| UserID表| UserDetails表
基于我在下面写了一个查询
create procedure proc_getuserdetailsaCallID()
as begin
Select ud.username from Userdetails ud inner join UserID usid on usid.userid=ud.userid inner join CallerID cid on cid.callerid=usid.callerid
end
答案 1 :(得分:0)
我通过两个步骤获得响应,一个是选择ID并删除表中是否有任何活动呼叫。
INSERT #Callers
SELECT u.UserId,u.UserName
来自用户你
JOIN调用c ON u.Id = c.CallerId
JOIN DeletedList A ON A.CallId = c.Call_Id
UNION ALL
SELECT u.UserId
来自用户你
LEFT JOIN调用ON u.Id = c.CallerId
GROUP BY u.Id有COUNT(c.Call_Id)= 0)SS
删除m
来自#Callers m
加入电话c
ON c.CallerId = m.UserId
虽然这样做很好,但任何人都可以将其优化为单个查询吗?