我要查询的东西很简单如下:
a表中数据
    id      city
     1       上海
     2       广州
b表中的数据
    username   cityid
     张三        1
     李四        2查询语句如下
 
select a.city,b.username from a,b where a.cityid= b.id group by a.city;为什么老报不是group by 表达式?请高手指点。

解决方案 »

  1.   

    不在group by后面出现的列,在select中须使用聚合函数,如sum、max、min等。
    b.username并没有在group by后面出现,也没有使用聚合函数。报错就一目了然了。从你上面的语句和你列举的数据来看,使用group by想要起到什么作用?没有一点意义!!
      

  2.   


    select a.city,b.username from a,b where a.cityid= b.id group by a.city,b.username;
    select a.city,count(b.username) from a,b where a.cityid= b.id group by a.city;
    select a.city,max(b.username) from a,b where a.cityid= b.id group by a.city;
    select a.city,min(b.username) from a,b where a.cityid= b.id group by a.city;
      

  3.   

    难道非得有多少字段多得放到group by 后面吗?
    我这么做只是将语句简化了,我是要统计每个城市下面有多少用户。