1. 程式人生 > >mysql中on關鍵字和where關鍵字

mysql中on關鍵字和where關鍵字

數據 col 區別 類型 常用 行數據 隱式 沒有 連接

  在mysql的from子句中存在多表時可以選擇添加join關鍵字用來顯式的表明連接類型,如果不使用join關鍵字則為隱式連接(我的理解就是對表進行笛卡爾積),隱式連接沒有表明連接條件,使用where關鍵字對連接結果進行過濾on關鍵字在顯示連接類型時用於設置多個表之間的連接條件

  on關鍵字和where關鍵字並不沖突。on關鍵字是設置表的連接關系,where關鍵字是用來設置表中數據的過濾條件,先執行表的連接條件,在進行數據的過濾。

  另外簡單的記錄一下自己對內連接外連接的理解。

  內連接(inner join)就是常用的隱式連接。內連接與隱式連接的區別在於:內連接的連接條件交給了on關鍵字而隱式連接的連接條件統一交由where關鍵字進行處理。其實連接條件也是在對數據進行過濾。

  左外連接(left outer join)就是,在連接條件結束之後會保證左邊表的所有數據都不會丟失。舉個例子:員工信息表和員工遲到記錄表(遲到記錄表中只保存有過遲到記錄員工的數據),通過員工id進行關聯。要查詢所有員工的遲到情況。使用左外連接的結果會保留未遲到過的員工信息,而使用內連接,未遲到過的員工信息不會被顯示。

  右外連接和左外連接差不多,就是連接之後保留右邊表的數據不會丟失。

mysql中on關鍵字和where關鍵字