2017-11-30 3 views
0

Order detailsテーブルには、catalog idとそのquantityが含まれています。3テーブルを使用して合計コストを計算するSqlクエリ

Catalogは、特定の商品の価格があります。

1つの注文については、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

これはカタログの注文に関するものですか? 1つのオーダーで注文されるカタログの数にかかわらず、2つの特定のカタログの合計コストを選択したいとします。 catalog_ids 1と2の合計を注文レコードに保存しますか?それは奇妙に聞こえる。実際にどこに拘束されていますか?あなたは確かに、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; 
関連する問題