天天看點

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日之後的資料
  • 最後把這些資料通過購買的商品數降序排列得到最終的資料結果