2017-04-25 1 views
0

MySQL을 사용하여 전자 상거래 웹 사이트를 구축하고 있습니다. 나는 다음과 붙어있다.두 가지 기준 (MySQL + 스키마 + 수학)을 기반으로 제품을 표시하는 가장 좋은 방법은 무엇입니까

은 내가

**products** table: 
    id | sku 

**stocks** table: 
id | product_id |quantity 

**orders** table: 
id | status  | products 

내가 나에게 하나 또는 그 이상의 양을 가지고있는 제품을 제공 SQL 쿼리를 만들 수있는 가장 좋은 방법을 알고 싶어합니다. 제품 수량을 얻으려면 : 먼저 제품에서 ID를 얻은 다음 주식의 금액을 확인하십시오 (product_id는 1 행 이상을 가질 수 있습니다. 새 행을 추가 할 때마다 새 행을 추가하려고합니다.) 재고량)을 계산하고 product_id가 주문 테이블에 있고 그 행 상태가 3이고 그 행 상태가 3 인 총 시간 수를 뺍니다.

또는 나에게 더 나은 방법을 제안 할 수 있다면 정말 좋습니다.

정말로 도움을 주셔서 감사합니다. 감사합니다.

답변

0

이 주식에 제품을 결합 및 수량의 값이 더 많거나 하나

을 동일한 그냥 당신이 제품 ID가 두 번 때문에 난 제품 ID와 합산하여 그룹화 제안보다는 주식이 될 수 있다고 말했다 실현입니다 제품의 목록을 가져옵니다 수량

SELECT *, SUM(s.quantity) as 'products_total_quantity' FROM products p 
INNER JOIN stocks s on s.product_id = p.id 
GROUP BY p.id HAVING SUM(s.quantity) >=1 
+0

SUM()은 자동으로 음수 항목을 뺍니다. 따라서 내 대답이 여전히 사양과 함께 작동해야합니다. –

+0

답장을 보내 주셔서 감사합니다! 상태가 3 인 주문이 있고 orders.products 필드의 JSON에 동일한 product.id가 포함되어있는 경우에는 제외하지 않습니다. 어떻게해야합니까 @ jason-joslin? –

관련 문제