刚完成一个需求,统计用户的购买次数。前面已经left join 过多个表了,且里面已有count(1) 语句。相当于查询出了 用户表的信息。
现在是在此基础上再统计一次count(1),但此时需要再left jion 订单表。
思路:
把原来的查询结果作为一个子表a,再 left join 订单表 o
执行SQL大致简化如下:
SELECT m.id ,COUNT(o.id) FROM Member m LEFT JOIN Orders o ON m.id= o.member_id AND o.status = 5 GROUP BY m.id
另外补充下:
SELECT m.id ,COUNT(o.id) FROM Member m LEFT JOIN Orders o ON m.id= o.member_id WHERE o.status = 5 GROUP BY m.id
这里的 where 是过滤条件
参考的博客如下: