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 展开
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 展开
1个回答
展开全部
你好题主,如果你题目需要的是一对多关系的话,我建议修改一下表结构,把图片对应的商品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语句解析的元素以逗号间隔。
商品表 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语句解析的元素以逗号间隔。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询