Mysql获取产品数量

时间:2013-07-24 12:53:08

标签: mysql select join group-by

我有以下两个表

# 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语句来获得所需的结果集。感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用countouter 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