전자 상거래 웹 사이트에서 쿼리를 변경해야합니다. 이 웹 사이트는 고객이 선택한 수량에 따라 각 제품에 대해 여러 가지 가격을 가지고 있습니다.
장바구니에 담긴 제품의 수량이 특정 수치보다 많은 경우, 그 가격은 더 낮을 것입니다.
예를 들어, 수량이 1이면 가격은 $ 10이고, 수량이 20이면 각 제품의 가격이 $ 8로 줄어 듭니다. 내가 WHERE prices.num='1'
라인을 변경하려면MySQL JOIN 쿼리에 조건 추가 : 쿼리의 결과와 동일한 열
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'
:이 쿼리에서
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.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을 사용해야합니다 ...
EDIT : 제품 111111
수량이 20 개 미만인 경우 $ 10, 20 - 100 사이 인 경우 $ 8, 100 개 이상의 r 개.
의 가장 낮은 값과 함께 일치
num
의 가장 높은 값을 얻을 수 있습니다 각각의 추가 제품에 대해 각각 감소합니까? 그 테이블은 어디에 있습니까? 아니면 고정 된 비율입니까? – kchason불행히도 감소는 고정되어 있지 않습니다. 이들은 num 열의'prices' 테이블에 저장됩니다. – Niloofar
샘플 데이터를 제공하십시오. 백분율 또는 달러 금액? 할인 수에 제한이 있습니까? 각각 할인됩니까? 여기에 정의되지 않은 항목이 많이 있습니다. – kchason