mysql 选择特定的表_Mysql:从多个连接表中选择特定数据

我在围绕这个选择语句缠绕我的大脑时遇到了麻烦。数据来自3个表格(为了便于阅读,我删除了所有不必要的数据):

mysql> describe vulnerability;

+---------------+------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+---------------+------------------+------+-----+---------+----------------+

| vuln_id | int(10) unsigned | NO | PRI | NULL | auto_increment |

| severity | int(10) unsigned | NO | | NULL | |

| host_id | int(10) unsigned | NO | MUL | NULL | |

+---------------+------------------+------+-----+---------+----------------+

mysql> describe cve;

+---------+------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+---------+------------------+------+-----+---------+----------------+

| cve_id | int(10) unsigned | NO | PRI | NULL | auto_increment |

| cve | varchar(15) | NO | | NULL | |

| vuln_id | int(10) unsigned | NO | MUL | NULL | |

| year | int(4) unsigned | YES | | NULL | |

+---------+------------------+------+-----+---------+----------------+

mysql> describe host;

+--------------+------------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+--------------+------------------+------+-----+---------+----------------+

| host_id | int(10) unsigned | NO | PRI | NULL | auto_increment |

| ip_addr | int(10) unsigned | NO | | NULL | |

+--------------+------------------+------+-----+---------+----------------+

我想输出漏洞少于2009年且严重性为3的主机数量。年份包含在CVE中,它与Vuln_id FK的漏洞相关联。该漏洞具有严重性,并与host_id FK绑定到Host。这是我到目前为止:

mysql> select count(distinct ip_addr) from host H

inner join vulnerability V on H.host_id = V.host_id

inner join CVE C on C.vuln_id = V.vuln_id

where V.severity = 3 and C.year < 2009;

+-------------------------+

| count(distinct ip_addr) |

+-------------------------+

| 5071 |

+-------------------------+

这告诉我有超过2009年的漏洞的主机总数,这是一个良好的开端。但是,我想更进一步,只包括那些有50个或更多漏洞的主机。我不知道该怎么做。 Host表中的每个主机条目都有多个相应的漏洞条目。我假设我需要在where子句中添加一些内容,但是我被卡住了。

提前致谢。如果需要更多信息,请告诉我。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值