0

我有以下两张表

# vendor table
vendor_id     host
   1       192.168.0.2
   1       192.168.0.4
   1       192.168.0.6
   2       192.168.1.21
   2       192.168.1.23
   2       192.168.1.25
   2       192.168.1.27

# information table
    host        name
 192.168.0.2     bar
 192.168.0.4     bar1

我最后需要的是以下结果集

vendor_id amount_live amount_total
    1         2            3
    2         0            4

列amount_live 是信息表中每个供应商的条目数量,列amount_total 是每个供应商在供应商表中的主机数量。

可以请一些专家告诉我mysql select语句以获得所需的结果集。谢谢。

4

1 回答 1

1

您可以使用count和执行此操作outer join

select v.vendor_id, 
   count(i.host) amount_live,
   count(*) amount_total
from vendor v
    left join information i on v.host = i.host
group by v.vendor_id
于 2013-07-24T12:57:42.840 回答