表:team - 字段: id、title、city_id、d_time、user_id
表:category - 字段: id、name数据:
team:
id | title | city_id |  d_time  | user_id  |
1  | 测试  | 1       |  131452  |   7      |
2  | 测试  | 2       |  123452  |   9      |
3  | 测试  | 3       |  171452  |   9      |     
4  | 测试  | 1       |  161452  |   3      |
5  | 测试  | 1       |  121452  |   3      |
6  | 测试  | 2       |  141452  |   7      |category:id | name |
1 | 湖南
2 | 深圳
3 | 广州
4 | 杭州
5 | 东北
6 | 北京
where 条件是:
where d_time > 141452  and user_id = 7
现在查询出来后,count(team.id)为0的记录不显示,郁闷死我..
查询后的结果是:
name | count(team.id) |
  湖南 | 3
  深圳 | 2
  广州 | 1最后想显示的结果是这样的:
name | count(team.id) |
  湖南 | 3
  深圳 | 2
  广州 | 1
  杭州 | 0
  东北 | 0
  北京 | 0用了left join 或 right join 也不行..总之就是count为0的数据,也要显示出来..
求大神指点....

解决方案 »

  1.   

    Select a. name,count(*)
    From category a left join (select * from team where d_time > 141452  and user_id = 7) b on a. city=b. city
    Group by a. name
      

  2.   

    应该是WHERE 出了问题,在子查询中使用条件
    select * from team where d_time > 141452  and user_id = 7
    再与工作表连接分组
      

  3.   

    你如果想出现那样的效果用leftjoin的话就要用category left join team on .. where ..
    这样试过没有啊?
      

  4.   

    1楼,你好。能不能解释下这样嵌套查询比直接leftjoin再where有什么大的区别吗?敬请指教啊!