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
- 1 回答
- 0 关注
- 129 浏览
添加回答
举报