求和不同表的结果,如果不存在则返回null

时间:2018-06-04 06:48:14

标签: mysql sql

我是MySQL的新手,现在我的一个查询出现问题。我有3个表(用户,分支和销售)。我想查询并返回用户销售组总和的结果,如果销售不存在,则查看结果为NULL。以下是我的表格的详细信息:

用户

user_id username
----------------
1       adam   
2       david
3       siva    

分支

branch_id   user_id
-------------
001         1       
002         1       
003         1
004         2
005         3

销售

branch_id   sales
-------------
001        20       
002        30       
003        10

下面是我的查询;

SELECT u.username, SUM(s.sales) AS total_sales
FROM USER u
INNER JOIN branch b ON u.user_id=b.user_id
INNER JOIN sales s ON s.branch_id=b.branch_id

非常感谢。

2 个答案:

答案 0 :(得分:2)

SELECT u.username, SUM(s.sales) AS total_sales
FROM USER u
LEFT JOIN branch b ON u.user_id=b.user_id
LEFT JOIN sales s ON s.branch_id=b.branch_id
GROUP BY u.user_id

答案 1 :(得分:2)

SELECT u.id, SUM(IFNULL(s.sales,0)) AS total_sales
FROM USER u
left JOIN branch b ON u.user_id=b.user_id
left JOIN sales s ON s.branch_id=b.branch_id
GROUP BY u.user_id;