我有 3 个表,如下所示:
branch
id name
---------
1 abc
2 xyz
users
id branch_id name
-----------------
1 1 aa
2 1 bb
3 2 cc
4 1 dd
5 2 ee
sales
id user_id product price
1 1 xxxx 10
2 1 yyyy 20
3 2 zzzz 18
4 3 aaaa 12
5 2 bbbb 10
6 4 cccc 20
现在我想获得分支的总销售金额,例如:
branch_id total_price
---------------------
1 78
2 12
为此,我编写了一个 sql 查询,例如:
SELECT SUM(s.price) , b.id
FROM sales s
JOIN branch b
GROUP BY id
HAVING s.user_id
IN (
SELECT id
FROM users
WHERE branch_id = b.id
)
但这并没有提供我想要的答案。请帮助我。
最佳答案
我认为这应该可以解决问题:
SELECT branch.id AS branch_id, SUM(s.price) AS total_price
FROM branch
JOIN users ON branch.id = users.branch_id
JOIN sales ON users.id = sales.user_id
GROUP BY branch.id;
您还可以使用INNER JOIN
而不是JOIN
(两者都在做同样的事情)。使用 INNER JOIN
可能更容易阅读,特别是您的查询包含其他类型的 JOIN
,例如 LEFT JOIN
或 RIGHT JOIN
希望有帮助!
关于Mysql连接3表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40157559/