有两个表,结构如下:
A表
CREATE TABLE IF NOT EXISTS `A` (
  `id` int(11) NOT NULL auto_increment COMMENT 'ID',
  `name` char(200) collate utf8_unicode_ci NOT NULL COMMENT '指标名称'
)
INSERT INTO `A` (`id`, `cname`) VALUES
(8, '新闻'),
(18, '娱乐'),
(10, '电影'),
(11, '小说');B表
CREATE TABLE IF NOT EXISTS `B` (
  `id` int(11) NOT NULL auto_increment,
  `cid` int(11) NOT NULL COMMENT '指标ID',
  `name` char(200) NOT NULL COMMENT '名称'
)
INSERT INTO `B` (`id`, `cid`, `name`) VALUES
(6, 18, 'ddddddd'),
(13, 10, 'sssssss'),
(7, 18, 'ccccccc'),
(14, 18, 'eeeeeee'),
(9, 11, 'fffffff'),
(10, 10, 'wwwwww'),
(11, 8, 'eeeerrrrrr'),
(15, 11, 'hhhhhhhh'),
(16, 18, 'xxxxxxx');我现在想通过查询数据库,得到如下表格效果:新闻    eeeerrrrrr
娱乐    ddddddd
        eeeeeee
        ccccccc
        ...
电影    sssssss
        wwwwww
小说    fffffff
        hhhhhhhhA表中的项合并后显示为一行,而不是显示多行。

解决方案 »

  1.   


    mysql> select a.cname,group_concat(b.name) from t8 a left join t9 b on a.id=b.cid group by a.cname;
    +-------+---------------------------------+
    | cname | group_concat(b.name)            |
    +-------+---------------------------------+
    | 娱乐  | ddddddd,xxxxxxx,eeeeeee,ccccccc |
    | 小说  | hhhhhhhh,fffffff                |
    | 新闻  | eeeerrrrrr                      |
    | 电影  | sssssss,wwwwww                  |
    +-------+---------------------------------+
    4 rows in setmysql> 是要这样的结果吗?
      

  2.   

    像楼上用函数group_concat即可。
      

  3.   

    不是,是下面的效果:
    +-------+---------+
    | cname | name    |
    +-------+---------+
    | 娱乐  | ddddddd |
    |       | xxxxxxx |
    |       | eeeeeee |
    |       | ccccccc |
    | 小说  | hhhhhhhh|
    |       | fffffff |
    | 新闻  | eeeerrrrrr 
    | 电影  | sssssss |
    |       | wwwwww  |
    +-------+---------------------------------
      

  4.   

    SELECT 
      (CASE WHEN EXISTS(SELECT 1 FROM B WHERE CID=T.CID AND ID>T.ID) THEN '' ELSE A.CNAME END) AS CNAME,
      T.NAME 
    FROM 
      A,B T 
    WHERE 
      A.ID=T.CID/**
    CNAME NAME
    新闻 eeeerrrrrr
    wwwwww
    电影 sssssss
    fffffff
    小说 hhhhhhhh
    ddddddd
    ccccccc
    eeeeeee
    娱乐 xxxxxxx
    **/