我有以下两个表
# 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语句来获得所需的结果集。感谢。
答案 0 :(得分: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