mysql - LEFT JOIN - 列出所有卖家及其销售额,包括没有销售额的卖家

标签 mysql left-join

在下面的演示示例中,我使用以下查询获取每个卖家的销售额总和,并计算销售额:

tab_sellers

id_seller | seller
   1         John
   2         Marie
   3         Jamie


tab_sales

id | sales | seller | value
1     BMW       1      100
2     FORD      1      200
3     FIAT      2      300
4     FORD      2      400


SELECT tsl.sellers, 
       SUM(ts.value) AS value_sales, 
       COUNT(ts.sales) AS sales_number
FROM tab_sellers tsl
LEFT JOIN tab_sales ts ON  tsl.id_seller = ts.seller
GROUP BY ts.seller

通过此查询,我获得了销售的卖家列表以及他们的销售值(value)和销售数量的总和。 在这种情况下,只会出现包含 John 和 Marie 销售额的列表。

但是,我想得到的是所有卖家的列表,他们是否有销售额,销售额,总销售额。

也就是说,在结果中也应该出现销售额 = 0 且值(value) = 0 的 Jamie

提前致谢。

最佳答案

尝试检查是否为空

      SELECT tsl.sellers, 
             SUM(ifnull(ts.value,0)) AS value_sales, 
             COUNT(inull(ts.sales,0)) AS sales_number
      FROM tab_sellers tsl
      LEFT JOIN tab_sales ts ON  tsl.id_seller = ts.seller
      GROUP BY tsl.seller

关于mysql - LEFT JOIN - 列出所有卖家及其销售额,包括没有销售额的卖家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44828928/

相关文章:

javascript - 当我按下获取路由按钮时,我希望我的 javascript 变量存储在数据库中

php - 多个左连接返回双行

php - 消除 MySQL 左连接查询中的重复列

sql - 捕获连接表达式中的所有记录

MYSQL连接2个表,两个表的金额总和按第一个表分组

php - MySQL: "error in your SQL syntax ... near key ..."?

mysql - 如何打开远程mysql连接?

php - 如何在已有的MYSQL数据库表中添加列条目?

mysql - 使用 where 子句合并 2 个 sql 语句

mysql - SQL多表无记录显示