我正在尝试输出2018年每个国家/地区的客户下的订单总数。这是我的查询:
select country, count(country)
from customers, orders
where customers.id = orders.id and orders.date >= '2018-01-01' and
orders.date <='2018-12-31'
group by(country);
这将打印出正确的值,但不会输出订单为0的国家。我也尝试了不同类型的联接(右联接,左联接等),但还是没有运气。任何人都知道如何解决此问题或知道它可能有什么问题吗?
答案 0 :(得分:2)
使用left join
并在ON
子句中移动where条件
select country, count(orders.id)
from customers left join orders
on customers.id = orders.id and orders.date >= '2018-01-01' and
orders.date <='2018-12-31'
group by country
答案 1 :(得分:1)
使用现代联接而不是逗号分隔的联接,请计入orders.id
select country, count(orders.id)
from customers left join orders
on customers.id = orders.id and orders.date >= '2018-01-01' and orders.date <='2018-12-31'
group by country
分组后不需要括号