我有一个看法A
和一个视图B
.
In A
我有很多关于某些系统的信息,例如IP
and port
我想保留一切。在B
我只想添加一条信息A
.
两个视图之间的匹配字段是IP
and Port
。所以我必须在两个视图中匹配那些具有相同 IP 和端口的主机。
例子:
View 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
View B:
IP | Port | State
1 | 443 | Open
2 | 80 | Closed
OUTPUT
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/端口相关项。
视图 A 的某些主机也可能在视图 B 中存在某些匹配。
我认为我应该使用 LEFT JOIN 以便拥有视图 A 的所有条目和视图 B 的正确关联条目,但它不起作用。
我无法使用正确的 WHERE 子句和 JOIN 解决方案调整查询。
任何想法?
select a.ip, a.os, a.hostname, a.port, a.protocol,
b.state
from a
left join b on a.ip = b.ip
and a.port = b.port
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)