日期:2014-05-17  浏览次数:20693 次

[求助]求教一个查询sql
求教一个装盒子的问题(商品装进小盒子,小盒子装进大箱子),只有商品对应小盒子,商品对应大箱子的信息,需要得出对应的小盒子与大箱子的对应关系,默认按ID顺序装进大箱子
表SMALL_BOX小盒子
商品ID   小盒子ID   数量  
A        S1         10
A        S2         10
A        S3         7
B        S4         20
C        S5         30
C        S6         7         

表BIG_BOX大箱子
商品ID   大箱子ID   数量  
A        B1         20
A        B2         7
B        B3         20
C        B4         37

表SMALL_BIG_RATE产品小盒子和大箱子的比例
商品ID   大箱子能装商品和小盒子能装的比例
A        2
B        3
C        3

需要的查询sql结果为
商品ID 小盒子ID   大箱子ID
A        S1         B1
A        S2         B1
A        S3         B2
B        S4         B3
C        S5         B4
C        S6         B4           


------解决方案--------------------
没有环境,不能给你完美答案。
但是给你个思路,你看看行不行

先根据SMALL_BIG_RATE表的【 大箱子能装商品和小盒子能装的比例】对每个商品的大箱子进行笛卡尔积
然后小箱子表LEFT JOIN 乘积后的大箱子表。再用<>NULL来过滤