【发布时间】:2021-06-17 00:00:24
【问题描述】:
假设我有下表:
| A | B | C | D |
|---|---|---|---|
| 10 | 14 | 15 | 16 |
| 9 | 13 | 14 | 14 |
| 8 | 12 | 13 | 12 |
| 7 | 9 | 12 | 10 |
| 6 | 8 | 11 | 8 |
| 5 | 8 | 10 | 6 |
这里的 A-B-C-D 是购物车。我想购买购物车中的商品。商品的价格在每一行中。例如,购物车 A 有 6 件商品,价格为 (10, 9, 8, 7, 6, 5)。
如果另一个购物车中没有更便宜的商品,我只想购买给定购物车中的商品,否则我想从另一个购物车购买商品。当我购买每件商品时,我会将其标记为已购买。每个购物车也有不同的购买能力。 A最多可以买5个,B最多6个,C最多4个,D最多1个。
购物车 A 是锚点,所以如果 A 达到容量,我们就会停下来。
原来如此。
购买:
- 5 来自 A
- 6 来自 A
- 6 来自 D - D 在此次购买后达到产能
- 7 来自 A
- 8 来自 A
- 8 来自 B
- 8 来自 B
- 9 从 A - A 达到容量
由于 A 达到了它的容量,它会在这里结束。
您将如何在 SQL 中执行此操作。我想我可以使用循环,但我读过 SQL 是为了提高效率而基于集合的。我正在尝试做的似乎需要循环或递归。这是正确的方法吗,我应该为此使用 Python 吗?
感谢您的帮助!
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
-
更新了标签,使用 mysql。谢谢!
-
请说明流程结束的原因和时间?你写了“既然 A 达到了它的容量,它会在这里结束。”,但 A 在那之前两步就达到了它的容量。
-
很抱歉,该过程应该在第 8 步结束。我将编辑我的问题。
-
@RareWiz 好的,看看我的回答
标签: python mysql sql loops recursion