我的数据  
表1
ID   NAME
1    ABC
2    BCD
3    CDE表2
ID mainID  num
1   1      5.2
2   1      5.3
3   2      5.2
4   2      5.4
5   2      5.6
6   3      5.9
想要显示为ID NAME num
1  ABC  5.2 5.3
2  BCD  5.2 5.4 5.6
3  CDE  5.9我改怎么写SQL查询语句呢?

解决方案 »

  1.   

    mysql:
    select a.ID,a.NAME,group_concat(b.num)
    from tt a inner join b on a.ID=b.mainID group by a.ID,a.NAME
      

  2.   

    SELECT tab1.*,GROUP_CONCAT(num SEPARATOR ' ') 
    FROM tab1
    LEFT JOIN tab2 ON tab1.ID=tab2.mainID 
    GROUP BY tab1.ID,tab1.`NAME` 
      

  3.   


    如果再加上第三个表呢,也和第二个表差不多,的另一组数据,
    表2
     ID mainID  str
     1   1      dfd
     2   1      dfxc
     3   2      xzcvzx
     4   2      sdadsc
     5   2      ZXcdv
     6   3      sdfd
    这三个一起写可以吗?
      

  4.   

    如果再加上第三个表呢,也和第二个表差不多,的另一组数据,
     tab3
      ID mainID  str
      1   1      dfd
      2   1      dfxc
      3   2      xzcvzx
      4   2      sdadsc
      5   2      ZXcdv
      6   3      sdfd
     这三个一起写可以吗?
      

  5.   

    select a.ID,a.NAME,group_concat(b.num),
    group_concat(c.str)
     from tt a inner join b on a.ID=b.mainID 
    inner join c on a.ID=c.mainID group by a.ID,a.NAME
      

  6.   

    SELECT tab1.*,GROUP_CONCAT(num SEPARATOR ' ') AS num,GROUP_CONCAT(str SEPARATOR ' ') AS str 
    FROM tab1 
    LEFT JOIN tab2 ON tab1.ID=tab2.mainID 
    LEFT JOIN tab3 ON tab1.ID=tab3.mainID 
    GROUP BY tab1.ID,tab1.`NAME`