2017-11-30 4 views
0

Order details 테이블에는 catalog idquantity이 포함되어 있습니다.3 테이블을 사용하여 총 비용을 계산하는 SQL 쿼리

Catalog은 특정 품목의 가격을 보유하고 있습니다.

한 가지 주문의 경우 2 개 항목 만 선택할 수 있습니다. 선택한 품목의 총비용을 생성하고 order id을 사용하여 특정 주문의 주문 테이블에 저장해야합니다.

my catalogs의 열은 id, name, price입니다.

order details의 열은 id, order_id, catalog_id, quantity입니다.

orders 표의 열은 id, customer_id, total_cost입니다.

mysql에서 3 개의 테이블을 사용하여 총 비용을 계산하려면 어떻게해야합니까?

+0

카탈로그를 주문 하시겠습니까? 얼마나 많은 카탈로그가 하나의 순서로 정렬 되더라도 두 카탈로그의 총 비용을 선택하고 싶습니다. catalog_ids 1 및 2를 작성하여 합계 레코드에 저장하십시오. 그게 이상한 소리. 그리고 실제로 너 어디서 붙어 있니? 두 카탈로그의 가격과 수량을 곱한 다음 결과를 합산해야한다는 것을 확실히 알고 있습니다. 아니면 이미 귀하의 질문에 대답합니까? –

답변

0

시도해보십시오.

SET SQL_SAFE_UPDATES = 0; 
UPDATE orders 
INNER JOIN (
SELECT order_id, SUM(quantity*price) total_price 
FROM order_details 
INNER JOIN my_catalogs 
ON order_details.catalog_id = my_catalogs.id 
GROUP BY order_id 
) d 
ON order.id = d.order_id 
SET orders.total_cost = d.total_price; 
SET SQL_SAFE_UPDATES = 1; 
관련 문제