【问题标题】:SQL Server : query correlation from two tablesSQL Server:从两个表查询相关性
【发布时间】:2015-02-03 18:00:47
【问题描述】:

我有两个表要关联来自以下的数据:

Tasklist:

Hostname    PID     Process       Module
-----------------------------------------------
Host1       1       sample.exe    sample.dll
Host2       4       sample2.exe   sample2.dll
Host5       11      sample5.exe   sample.dll

Netstat:

Hostname    PID    Address    .... (many other columns I don't care about)
------------------------------
Host9       8      10.10.10.10
Host2       67     78.66.44.22
Host8       78     54.22.11.33
Host1       1      77.33.22.11

我想要做的是从任务列表表中返回所有行,其中任务列表表中的主机名和 PID 也在 Netstat 表中找到。因此在这种情况下,它将返回 Tasklist 表中的第一行,因为 Netstat 中存在 Host1 和 PID 1。

我是 SQL 的新手,不知道该怎么做,任何帮助都将不胜感激!

【问题讨论】:

  • 在 pid 和主机名上应用加入

标签: sql-server select


【解决方案1】:

您应该在两个表上使用连接来从两个表中获取匹配的值,但您需要来自tasklist 的值。你可以这样做,

      Select tasklist.*,netstat.address 
      From tasklist join netstat
       On tasklist.pid = netstat.pic and tasklist.hostname = netstat.hostname

【讨论】:

  • 太棒了,正是我需要的。感谢帮助 - 最后一件事......我有什么办法也可以从 netstat 表中获取地址吗?这不是必需的,但会让我的生活更轻松。我知道这会从两个不同的表中返回东西,我不知道这是否可能?我是否必须使用 INSERT INTO 并使用结果创建一个新表?再次感谢!
  • 你摇滚!!谢谢 - 非常有帮助,节省了我很多时间。
  • 无需执行任何其他操作,只需从 select 中的两个表中选择您需要的列即可。我已根据您的要求更新了答案
猜你喜欢
  • 2014-08-30
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
相关资源
最近更新 更多