我有2个表:左连接未示出NULL导致
- DAY_INTERVALS(interval_start)
- 令(CLIENT_ID,order_time,order_total_price)
我想显示在所有的天针对ORDERS表的DAY_INTERVAL表。以下是我正在使用的SQL。
SELECT DATE_FORMAT(order_time,'%Y-%m-%d') as dates, COALESCE(SUM(order_total_price), 0) AS sales
FROM time_intervals ti
LEFT JOIN orders o
ON DATE(o.order_time) = ti.interval_start AND (o.client_id = 157 or o.client_id is NULL)
GROUP BY DAY(o.order_time)
它不显示订单表中不存在的日期的NULL结果。无论查询是否在订单表中,查询都应显示所有日期。
我已经看过类似的问题,但上面的查询是我基于其他解决方案提出的。
任何意见将不胜感激。
删除组合(和总和),看看你是否得到预期的结果 – kjana83
创建一个子查询为您的选择,然后组 –
这是导致问题的小组。 SELECT interval_start,COALESCE(SUM(order_total_price),0)AS销售 FROM time_intervals TI LEFT JOIN订单O于DATE(o.order_time)= ti.interval_start AND( o.client_id = 157 OR o.client_id IS NULL ) GROUP BY DAY(interval_start) 这个工作 –