sql查詢left join on 後and 和 where 的區別

left join on 後and 條件查詢

例子:SELECT a.FROM_TYPE ,a.USER_ACCOUNT userAccount
FROM hzzs_finance_money_flow_detail a LEFT JOIN hzzs_player_user bsql

ON a.USER_ID = b.ROW_ID AND a.FROM_TYPE = 10       =ON (a.USER_ID = b.ROW_ID AND a.FROM_TYPE = 10 )spa

解釋:當ON 後採用 AND 進行鏈接時, and後邊的條件實際上是 與ON 後條件進行組裝成一條,只對left join 後的表進行查詢 blog

能夠看到 AND a.FROM_TYPE = 10爲條件時,也查出FROM_TYPE  = 20 的數據,這是由於 採用and進行查詢條件時是組裝在ON以後的查詢條件的,假如此條件查詢的是左表就不會起做用,假如此條件查詢的是右表的話就會起做用  ,由於ON 後的條件只對右表起做用.      im

left join on 後 where  條件查詢

例子:SELECT a.FROM_TYPE ,a.USER_ACCOUNT userAccount
FROM hzzs_finance_money_flow_detail a LEFT JOIN hzzs_player_user b總結

ON a.USER_ID = b.ROW_ID  WHERE  a.FROM_TYPE = 10數據

使用wehere進行條件查詢時,where 是對前面sql所查詢出的表 再進行條件的篩選,查詢

 

總結

and做爲條件是組裝表時的sqlimg

where 做爲條件時 對查詢出的表 再進行條件的篩選co

相關文章
相關標籤/搜索