日期:2014-05-16 浏览次数:20830 次
mysql> select * from t1; +-------+------+ | level | name | +-------+------+ | 1 | a | | 1 | b | | 1 | c | | 2 | a | | 2 | b | | 4 | a | | 5 | b | +-------+------+ 7 rows in set (0.00 sec) mysql> select * from t2; +------+ | id | +------+ | 1 | | 2 | | 3 | | 4 | | 5 | +------+ 5 rows in set (0.02 sec) mysql> select t2.id as level,count(case when name is not null then 1 end) as count -> from t2 left join t1 on t2.id = t1.level -> group by t2.id; +-------+-------+ | level | count | +-------+-------+ | 1 | 3 | | 2 | 2 | | 3 | 0 | | 4 | 1 | | 5 | 1 | +-------+-------+ 5 rows in set (0.00 sec)