mysql如何实现多id联表查询结果

商品表goodsidtitlepics1面包1,2,32手机4,5,6图片表imgidpath1/img/111.jpg2/img/2hjk.jpg3/img/3hjk.... 商品表 goods
id title pics
1 面包 1,2,3
2 手机 4,5,6

图片表 img
id path
1 /img/111.jpg
2 /img/2hjk.jpg
3 /img/3hjk.jpg
4 /img/4hjjjpg
5 /img/5uy.jpg
6 /img/666.jpg

现在的问题是如何实现联表查询得出如下结果
id title pics id path
1 面包 1,2,3 1 /img/111.jpg
1 面包 1,2,3 2 /img/2hjk.jpg
1 面包 1,2,3 3 /img/3hjk.jpg
2 手机 4,5,6 4 /img/4hjjjpg
2 手机 4,5,6 5 /img/5uy.jpg
2 手机 4,5,6 6 /img/666.jpg

现在用:select * from goods LEFT JOIN img ON img.id in (goods.pids)只能显示出3个数据
而:select * from goods LEFT JOIN img ON img.id in (1,2,3)能直接显示对应那6个数据,但换成固定数字没有联表效果,请问如何实现联表

或直接实现下边的结果
现在的问题是如何关联查询这2个表,让他出现下边的效果
id title pics
1 面包 /img/111.jpg,/img/2hjk.jpg, /img/3hjk.jpg
2 手机 /img/4hjjjpg,/img/5uy.jpg, /img/666.jpg
展开
 我来答
渡沙津
2016-05-16 · 超过42用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:54.4万
展开全部
你好题主,如果你题目需要的是一对多关系的话,我建议修改一下表结构,把图片对应的商品id存在图片表中,如下:
商品表 goods
id title
1 面包
2 手机

图片表 img
id path goods_id
1 /img/111.jpg 1
2 /img/2hjk.jpg 2
3 /img/3hjk.jpg 1
4 /img/4hjjjpg 2
5 /img/5uy.jpg 1
6 /img/666.jpg 2

至于你目前的记录方式,如果一定要这样做的话,建议分开查询,先查出所有商品记录,然后再根据商品记录中的pics去图片表查询,mysql会把pics整个字段当做一个完整的字符串,并不是你想象中的wherein语句解析的元素以逗号间隔。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式