我有以下两个表
# 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语句以获得所需的结果集。谢谢。
最佳答案
您可以使用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
SQL Fiddle Demo
关于mysql - mysql获取产品数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17834613/