繁体   English   中英

LEFT JOIN不显示NULL结果

[英]LEFT JOIN not showing NULL results

我有2张桌子:

  • DAY_INTERVALS(间隔开始)
  • 订单(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结果。 该查询应显示所有天数,无论它是否在订单表中。

我看过类似的问题,但是上面的查询是我根据其他解决方案得出的。

任何建议将不胜感激。

如果您摆脱了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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM