MySQL查询语句的执行顺序WHERE、JOIN等
执行顺序
- from
- join
- on
- where
- group by
(从此处开始可以使用select中指定的别名)
- avg、sum、max
- having
- select
- distinct
- order by
举例
select sum(goods.number) from order
left join goods on goods.order_id = order.id
where order.status=1
group by order.user_id
having order.add_time > '2018-11-11 00:00:00'
order by goods.number desc
这是一个订单关联商品实例
- 首先从订单表order里面获取数据
- 然后通过left join与订单商品表相连接成一个字段更多的表
- 然后通过where筛选出订单状态为1的数据
- 然后group by通过用户分组,求得用户的购买商品数量和
- 然后在上述筛选的数据中,选择订单创建时间在18年11月11日之后的数据
- 最后把这些数据通过购买的商品数降序排列得到最终的数据结果