【问题标题】:Retrieving Data From Third Table (From Subquery)从第三个表中检索数据(来自子查询)
【发布时间】:2016-06-02 17:00:33
【问题描述】:

我目前有一个查询,它从两个不同的表中检索用户和服务器(计算机名称)。同一个用户会有多个条目,这很好,与他们有权访问的所有服务器配对。

我现在正在尝试最好地添加直接来自表 audit_details 的第三列(上次登录)(我想将其别名为“a”)。我不是 100% 确定如何将它与用户字段匹配(加入)。寻求一些帮助!我觉得我对如何构建子查询感到困惑。

  SELECT [user], [computer name], [last logon]='' -- LAST LOGON IS BLANK CURRENTLY
  FROM user_details u
    inner join server_details s
        on s. [Computer Name] = u.server
  where s.[SQL Server Edition] like 'dev%' -- Grabbing servers with 'developer'
  group by u.[user], s.[computer name]

【问题讨论】:

  • 你为什么在这个选择中使用 group by?

标签: sql sql-server database subquery reporting


【解决方案1】:

您可以编写一个选择语句(在括号中)作为选择中的第三列,如下所示:

SELECT [user], [computer name], 
(SELECT top 1 lastlogon FROM audit_details
   WHERE audit_details.userid = u.id ORDER BY audit_details.id DESC)

   FROM user_details u
       inner join server_details s
    on s. [Computer Name] = u.server
    where s.[SQL Server Edition] like 'dev%'

【讨论】: