mysql 多级关联查询_mysql一表连多表,多级关联能查询吗?

做php开发,遇到一个数据库处理问题:

现在要处理表inventory,这个表的一个字段goods_id.关联到表goods,但goods表里的多个字段又关连到其对应表;

这个表的另一个字段goods_level关联到表level。

不知道能否通过sql语句直接搞定,得到全部对应值?

如果不能通过sql语句搞定,要用什么方法来实现这个目的?请各位指点一二,谢!

还是上图好理解:

回复讨论(解决方案)

select * from inventory, goods, size, brand where inventory.goods_id=goods.goods_id and goods.goods_size=size.id and goods.goods_brand=brand.id

只要找出表与表之间的关系,对应表关系,不是难事,关键是你sql基础牢不牢。

xuzuning兄,你没考虑到level表。

zy205817,我就是基础不牢,要不然哪会再这提问。如果你知道怎么解决,麻烦指点下,感激不尽

select * from inventory, goods, size, brand, level where inventory.goods_id=goods.goods_id and goods.goods_size=size.id and goods.goods_brand=brand.id and inventory.goods_level=level.id

zy205817兄,按你写的执行报错了,说:

#1054-

unknow column inventory.goods_levle in where clause

确定表inventory有这个字段goods_level

给你一个复杂点的...

给你解释一下...分成两部分,第一个是先组成一个临时表为c,这个表是查询你的goods表然后左连接到你的size表跟brand表.

然后查询你的inventory表再左连接上面的c表跟level表...select a.id,a.supplier,a.warehouse_id,b.level,c.goods_name,c.size,c.brand from inventory as a left join level as b on a.goods_level = b.id left join (select a.goods_id as goods_id, a.goods_name as goods_name,b.brand as brand,c.size as size from goods as a left join brand as b on a.goods_brand=b.id left join size as c on a.goods_size=c.id) as c on a.goods_id=c.goods_id

谢谢leungigi的解答!解释很到位,一看就明白了,你一定是个良师益友!

顺路学习,感觉也很好。

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值