【发布时间】:2017-11-29 15:03:17
【问题描述】:
在电子商务网站中,我必须更改查询。
本网站对每种产品有多种价格,具体取决于客户选择的数量。
如果购物车中的产品数量超过特定数量,则其成本会更低。
例如,如果数量为 1,则价格为 10 美元,如果数量为 20,则每个产品的价格将降低到 8 美元。
这是我的表结构:
prices
id | product_id | num | price
1 | 111111 | 1 | 10
2 | 111111 | 20 | 8
3 | 111111 | 100 | 5
4 | 222222 | 1 | 42
5 | 222222 | 50 | 35
cart
id | factor_id | product_id | quantity
1 | 1 | 111111 | 30
2 | 1 | 222222 | 3
3 | 2 | 222222 | 1
4 | 2 | 111111 | 2
在这个查询中:
SELECT prices.price AS price, prices.product_id AS product_id FROM cart
LEFT JOIN prices ON prices.product_id = cart.product_id
WHERE prices.num='1'
AND cart.id='$cart_id'
我想更改WHERE prices.num='1' 行。价格必须根据购物车中该产品的数量来选择。
我认为这样的事情可能会有所帮助,但我不知道如何使用它,因为每个购物车可以有不同的产品:
SELECT (prices.num - cart.quantity) as nearest, prices.num as priceForThatQuantity
FROM prices
WHERE nearest > 0
ORDER BY nearest ASC
LIMIT 1
然后:
WHERE prices.num='1' = priceForThatQuantity
我想我必须使用某种 JOIN...
编辑:
产品111111 的数量少于 20 件时为 10 美元,数量在 20 到 100 件之间时为 8 美元,超过 100 件时为 5 美元。
【问题讨论】:
-
每增加一个产品,每个减少多少?那是一张桌子吗?还是固定费率?
-
不幸的是,减量不是固定的。它们存储在
prices表中。在num列中。 -
请提供一些示例数据,是百分比还是美元金额?折扣数量有限制吗?是每减一减吗?这里有很多没有定义。
-
一个产品可以有两个以上的价格吗?
-
如您在
prices表111111中看到的,如果数量少于 20 个,产品价格为 10 美元,数量在 20 到 100 个之间为 8 美元,超过 100 件为 5 美元。
标签: php mysql e-commerce