在下面的演示示例中,我使用以下查询获取每个卖家的销售额总和,并计算销售额:
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/