SQL Query来提取所需的数据

时间:2016-02-09 10:22:37

标签: mysql sql

我有一个应用程序,它生成一个带有调用ID的临时DeletedList表。

在我的数据库中,我有两个表:

  • 表'呼叫'具有呼叫ID和用户ID。
  • 表'用户'具有用户ID和其他用户详细信息。

我想检索所有用户ID,以便 all 他们的call-id出现在DeletedList表中。

换句话说,我所追求的查询应该包含那些至少有一个调用不在DeletedList表中的用户ID。

2 个答案:

答案 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

虽然这样做很好,但任何人都可以将其优化为单个查询吗?