亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對 MySQL 搜索的每個結果執行計算

對 MySQL 搜索的每個結果執行計算

PHP
蠱毒傳說 2023-10-22 21:43:36
為了計算訂單的總金額,我轉到商品表,并計算該訂單的商品總和。這是我的代碼:SELECT orders.*,  ROUND(SUM(`orders_article_updated_quantity` * (`orders_article_price` * (100 - orders_article_rate)/100)), 2) AS 'order_Total'FROM orders JOIN orders_articles  ON orders.order_id = orders_articles.orders_article_id_orderWHERE oreder_id = '" . $order['order_id'] . "'這段代碼適用于訂單,我得到了很好的結果?,F在我想對訂單列表或所有訂單執行此操作。所以我從我的請求中刪除了“WHERE”。我只得到一個結果,即所有訂單的總和。對于每個結果(訂單),我想要其自己的文章的總和。
查看完整描述

1 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

為此你需要聚合??紤]group by向查詢添加一個子句,如下所示:


SELECT 

    o.*, 

    ROUND(SUM(orders_article_updated_quantity * orders_article_price * (1 - orders_article_rate/100)), 2) AS order_Total

FROM orders o

INNER JOIN orders_articles oa ON ao.orders_article_id_order = o.order_id

GROUP BY o.order_id

請注意,您應該在查詢中的每一列前面加上它們所屬的表的前綴 - 中的列的情況并非如此,SUM()這會產生歧義。


另一個選項是相關子查詢(這允許orders沒有任何文章):


SELECT 

    o.*, 

    (

        SELECT ROUND(SUM(orders_article_updated_quantity * orders_article_price * (1 - orders_article_rate/100)), 2) 

        FROM orders_articles oa 

        WHERE ao.orders_article_id_order = o.order_id

    ) AS order_Total

FROM orders o


查看完整回答
反對 回復 2023-10-22
  • 1 回答
  • 0 關注
  • 153 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號