LEFT JOIN - 列出所有卖家及其销售,包括那些没有销售的人

时间:2017-06-29 15:10:29

标签: 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

通过此查询,我获得了销售的卖家列表以及销售额和销售数量的总和。 在这种情况下,只会出现一张销售John和Marie的清单。

但是,我想得到的是所有卖家的清单,无论他们是否有销售,销售数量和总销售额。

也就是说,在结果中也应该出现Jamie,其中sales = 0且value = 0

提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试检查是否为null

      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