1. 产品数据表内容如下:
Id (产品序号) ProductName (产品名)    Maker (产品制造商)
1         衣柜                     1, 3
2         双人床                     2, 3
3         会议桌                     2其中,产品制造商存储的是每家工厂的id字段,用逗号隔开。
2. 产品制造商数据表字段如下:
Id(制造商序号) factName(制造商名字)
1                   林氏家具公司
2                   全友家具集团
3                   安徽凤阳家俬
在查询出产品数据列表时,想同时查询出每件产品的制造商名字,也用逗号隔开返回,结果如:产品序号 产品名称 产品制造商
1          衣柜         林氏家具公司, 安徽凤阳家俬
2          双人床         全友家具集团, 安徽凤阳家俬
3          会议桌         全友家具集团这样的SQL查询怎么写?请指教!
子查询

解决方案 »

  1.   

    group_concat(factName)
    from a join b on find_in_set(a.x,b.y)
      

  2.   

    SELECT A.Id,A.ProductName,group_concat(B.factName)
    FROM 产品数据表 A 
    INNER join 产品制造商 b on find_in_set(a.x,b.y)
    GROUP BY A.Id,A.ProductName
      

  3.   

    不应该是 find_in_set(b.id,a.maker)吗
    求解释啊 亲
      

  4.   

    呵呵,是,没有修改字段名
    find_in_set(b.id,a.maker)
      

  5.   

    SELECT A.Id,A.ProductName,group_concat(B.factName)
    FROM 产品数据表 A 
    INNER join 产品制造商 b on find_in_set(a.x,b.y)
    GROUP BY A.Id,A.ProductName