数据字段是这样的
表states区域
id  name地名       district所属的区
1    陆家嘴           浦东区
2    虹口足球场       虹口区
3    中山公园         长宁区
4    世纪大道         浦东区现在需要查询所有不同区下面的所有地名,一次查询展示出来得到的结果是
浦东区:陆家嘴,世纪大道
虹口区:虹口足球场
长宁区:中山公园这个SQL该怎么写?还是数据库设计不合理,请大家帮帮忙  谢谢!

解决方案 »

  1.   

    select district,GROUP_CONCAT(name)
    from states
    group by district
      

  2.   

    select 所属的区,group_concat(distinct 地名)
    from tb
    group by 所属的区
      

  3.   


    mysql> create table if not exists area (
        ->     id int(11) unsigned not null auto_increment primary key,
        ->     name varchar(16) not null,
        ->     district varchar(16) not null
        -> )ENGINE=MyISAM DEFAULT CHARSET=utf8;
    Query OK, 0 rows affected (0.15 sec)mysql> desc area;
    +----------+------------------+------+-----+---------+----------------+
    | Field    | Type             | Null | Key | Default | Extra          |
    +----------+------------------+------+-----+---------+----------------+
    | id       | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
    | name     | varchar(16)      | NO   |     | NULL    |                |
    | district | varchar(16)      | NO   |     | NULL    |                |
    +----------+------------------+------+-----+---------+----------------+
    3 rows in set (0.02 sec)mysql> set names gbk;
    Query OK, 0 rows affected (0.00 sec)mysql> insert into area (name, district) values ('陆家嘴','浦东区');
    Query OK, 1 row affected (0.00 sec)mysql> insert into area (name, district) values ('虹口足球场', '虹口区');
    Query OK, 1 row affected (0.00 sec)mysql> insert into area (name, district) values ('中山公园', '长宁区');
    Query OK, 1 row affected (0.00 sec)mysql> insert into area (name, district) values('世纪大道', '浦东区');
    Query OK, 1 row affected (0.00 sec)mysql> select district,group_concat(name) from area group by district;
    +----------+--------------------+
    | district | group_concat(name) |
    +----------+--------------------+
    | 浦东区        | 陆家嘴,世纪大道                |
    | 虹口区         | 虹口足球场                   |
    | 长宁区         | 中山公园                 |
    +----------+--------------------+
    3 rows in set (0.00 sec)