Mysql查询的执行顺序
顺序:
- 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 > '2019-08-27 00:00:00'
  ORDER BY goods.number desc
- 首先从订单表order里面获取数据
- 然后通过LEFT JOIN与订单商品表相连接成一个字段更多的表
- 通过WHERE筛选出订单状态为1的数据
- GROUP BY通过用户分组,求得用户的购买商品数量和
- 在上述筛选的数据中,选择订单创建时间在2019年08月27日之后的数据
- 最后把这些数据通过购买的商品数降序排列得到最终的数据结果
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号