【问题标题】:LEFT JOIN - List all sellers and their sales, including those who do not have salesLEFT JOIN - 列出所有卖家及其销售额,包括那些没有销售额的卖家
【发布时间】:2017-06-29 15:10:28
【问题描述】:

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

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

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

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

也就是说,结果中也应该出现 Jamie,销售额 = 0,价值 = 0

提前致谢。

【问题讨论】:

    标签: mysql left-join


    【解决方案1】:

    尝试检查是否为空

          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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-06
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多