【发布时间】:2013-09-25 17:16:08
【问题描述】:
我有一个视图A 和一个视图B。
在A 中,我有很多关于某些系统的信息,例如IP 和port,我想保留所有这些信息。在B 中,我只想在A 添加一条信息。
两个视图之间的匹配字段是IP 和Port。所以我必须在两个视图中匹配那些具有相同 IP 和端口的主机。
例子:
查看 A:
IP | OS | Hostname | Port | Protocol
1 | Win | hostONE | 80 | tcp
1 | Win | hostONE | 443 | tcp
1 | Win | hostONE | 8080 | tcp
2 | Linux | hostTWO | 21 | tcp
2 | Linux | hostTWO | 80 | tcp
3 | Linux | hostTR | 22 | tcp
视图 B:
IP | Port | State
1 | 443 | Open
2 | 80 | Closed
输出
IP | OS | Hostname | Port | Protocol | State
1 | Win | hostONE | 80 | tcp |
1 | Win | hostONE | 443 | tcp | Open
1 | Win | hostONE | 8080 | tcp |
2 | Linux | hostTWO | 21 | tcp | Closed
2 | Linux | hostTWO | 80 | tcp |
3 | Linux | hostTR | 22 | tcp |
注意:视图A的某些主机可能在视图B中没有IP/Port相关项。
也可能是视图A的某些主机在视图B中有一些匹配。
我认为我应该使用 LEFT JOIN 以获得视图 A 的所有条目和视图 B 的正确关联条目,但它不起作用。 我无法使用正确的 WHERE 子句和 JOIN 解决方案调整查询。
有什么想法吗?
【问题讨论】:
-
你尝试了什么?向我们展示您的代码示例
-
您的
WHERE子句包含什么?