gpt4 book ai didi

mysql - 在 mysql 的子查询中执行 SUM()

转载 作者:行者123 更新时间:2023-11-29 06:00:42 25 4
gpt4 key购买 nike

我有两个具有这种设计的表

Invoices
-------
invoice_id
is_delivered

Data => (1, 'yes')

Invoice_products
----------------
ip_id
invoice_id
product_id
price

Data=> (1,1,1,5000), (2,1,2,7000)

现在我想要的是发票表的所有列和另一个表中的价格总和。像这样

invoice_id = 1
is_delivered = 'yes'
total = 12000

我试过了,但结果不正确。

SELECT * FROM invoices i INNER JOIN (SELECT invoice_id, SUM(price) AS total FROM invoice_products p ) AS t ON t.invoice_id = i.invoice_id;

我的 mysql 不是很好,但我试过了。有人愿意解释一下吗?

最佳答案

你有一些语法错误,你不需要子查询。
您只需从 invoice_products 中选择所有内容并计算 SUM - 这很容易做到。您已经完成了,但不要错过 GROUP 子句,它将根据不同的 invoice_id 计算总和。如果您不需要它 - 只需省略 groub 子句。
之后,您只需加入 invoices 表即可从该表中获取一些其他信息。

最终结果如下所示:

SELECT i.invoice_id, i.is_delivered, p.invoice_id, SUM(p.price) AS total
FROM invoice_products AS p
INNER JOIN invoices AS i ON p.invoice_id = i.invoice_id
GROUP BY p.invoice_id;

关于mysql - 在 mysql 的子查询中执行 SUM(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45172365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com