[英]LEFT JOIN not showing NULL results
我有2张桌子:
我想针对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结果。 该查询应显示所有天数,无论它是否在订单表中。
我看过类似的问题,但是上面的查询是我根据其他解决方案得出的。
任何建议将不胜感激。
如果您摆脱了AND (o.client_id = 157 or o.client_id is NULL)
,它将为您提供所需的数据集。
您正在有效地执行本文中的“左侧不包括JOIN”:
http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
唯一的区别是您是从ON子句而不是WHERE子句执行它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.