# 先用where条件子句过滤掉order_tb表所有金额不超过100的订单
# 另外,表关联以order_tb表为主,这样就不会把uservip_tb表未满足要求的客户关联进来
# 如果在select后用if(,,)去判断,不严密,会出错
# 因为执行顺序是from-where-group-select
# 不先在where处进行过滤,让一些未满足要求的单元也关联进去了,
# if确实不会给这些单元加point,但还有u.point项(已有积分)。
select
o.user_id,
SUM(o.order_price) + u.point as point
from
order_tb o left join uservip_tb u
on o.user_id = u.user_id
where o.order_price > 100
group by o.user_id
order by point desc
;

京公网安备 11010502036488号