这个SQL查询应该怎么写?

摇滚路上的新长征 2013-11-05 08:49:54

1. 产品数据表内容如下:
Id (产品序号) ProductName (产品名) Maker (产品制造商)
1 衣柜 1, 3
2 双人床 2, 3
3 会议桌 2

其中,产品制造商存储的是每家工厂的id字段,用逗号隔开。


2. 产品制造商数据表字段如下:
Id(制造商序号) factName(制造商名字)
1 林氏家具公司
2 全友家具集团
3 安徽凤阳家俬


在查询出产品数据列表时,想同时查询出每件产品的制造商名字,也用逗号隔开返回,结果如:

产品序号 产品名称 产品制造商
1 衣柜 林氏家具公司, 安徽凤阳家俬
2 双人床 全友家具集团, 安徽凤阳家俬
3 会议桌 全友家具集团

这样的SQL查询怎么写?请指教!
...全文
99 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2013-11-06
  • 打赏
  • 举报
回复
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
wwwwb 2013-11-06
  • 打赏
  • 举报
回复
呵呵,是,没有修改字段名 find_in_set(b.id,a.maker)
kobe8free 2013-11-06
  • 打赏
  • 举报
回复
不应该是 find_in_set(b.id,a.maker)吗 求解释啊 亲
引用 3 楼 wwwwb 的回复:
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
wwwwb 2013-11-06
  • 打赏
  • 举报
回复
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
王小葱 2013-11-05
  • 打赏
  • 举报
回复
,这都能想到,强大
ACMAIN_CHM 2013-11-05
  • 打赏
  • 举报
回复
group_concat(factName) from a join b on find_in_set(a.x,b.y)

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧