我2个表A和B  
A表结构如下: ID  ,TAG_IDS
B表结构如下: ID ,nameA表数据: ID  TAG_IDS
          1    2,5,4
          2    1,6,3,6
          3      5
          4      2,3
B表数据: ID    name
          1      足球
          2      篮球
          3      羽毛球
          4      高尔夫球
          5      棒球
          6      乒乓球其中A表中TAG_IDS 中的号码  等于B表中的ID
目标查询出:ID  TAG_IDS
            1    篮球,棒球,高尔夫球
            2    足球,乒乓球,羽毛球,高尔夫球
            3    棒球
            4    篮球,羽毛球

解决方案 »

  1.   

    mysql> select a.id, group_concat(b.name) from a ,b where find_in_set(b.id,a.tag_ids) group by a.id;
    +------+----------------------+
    | id   | group_concat(b.name) |
    +------+----------------------+
    |    1 | 高尔夫球,篮球,棒球   |
    |    2 | 羽毛球,乒乓球,足球   |
    |    3 | 棒球                 |
    |    4 | 篮球,羽毛球          |
    +------+----------------------+
      

  2.   

    select a.ID,group_concat(b.name)
    from A,B
    where find_in_set(b.id,a.TAG_IDS)
    group by a.ID
      

  3.   

    select a.id, group_concat(b.name) from a inner join b on find_in_set(b.id,a.tag_ids) group by a.id;