select a.name_id,a.order_country,ifnull(b.cnt,0) as order_counts from sell_information a left join (select name_id,order_country,count(order_id) cnt from sell_information group by name_id,order_country) b on a.name_id=b.name_id and a.order_country=b.order_country 首先就是查找每个用户每个国家的消费订单数,也就是得到表b(因为目前表b是不含订单为0的国家的),然后再让原表进行左连接,左连接的目的就是保留原有的国家,连接之后的新表就含有每个国家了,然后再用ifnull函数将这些没有订单数的国家的订单数量变成0.