inner join和where區(qū)別導(dǎo)讀:
1 WHERE子句中使用的連接語句,在數(shù)據(jù)庫語言中,被稱為隱性連接。INNER JOIN……ON子句產(chǎn)生的連接稱為顯性連接。(其他JOIN參數(shù)也是顯性連接)WHERE和INNER JOIN產(chǎn)生的連接關(guān)系,沒有本質(zhì)區(qū)別,結(jié)果也一樣。但是!隱性連接隨著數(shù)據(jù)庫語言的規(guī)范和發(fā)展,已經(jīng)逐漸被淘汰,比較新的數(shù)據(jù)庫語言基本上已經(jīng)拋棄了隱性連接,全部采用顯性連接了。 2無論怎么連接,都可以用join子句,但是連接同一個表的時候,注意要定義別名,否則產(chǎn)生錯誤! a> inner join:理解為“有效連接”,兩張表中都有的數(shù)據(jù)才會顯示left join:理解為“有左顯示”,比如on a.field=b.field,則顯示a表中存在的全部數(shù)據(jù)及a\\b中都有的數(shù)據(jù),A中有、B沒有的數(shù)據(jù)以null顯示 b> right join:理解為“有右顯示”,比如on a.field=b.field,則顯示B表中存在的全部數(shù)據(jù)及a\\b中都有的數(shù)據(jù),B中有、A沒有的數(shù)據(jù)以null顯示 c> full join:理解為“全連接”,兩張表中所有數(shù)據(jù)都顯示,實際就是inner+(left-inner)+(right-inner) 3 join可以分主次表 外聯(lián)接有三種類型:完全外聯(lián),左聯(lián),右聯(lián). 完全外聯(lián)包含兩張表的所有記錄. 左聯(lián)是以左邊的表為主,右邊的為輔,右聯(lián)則相反 4一般要使得數(shù)據(jù)庫查詢語句性能好點遵循一下原則: 在做表與表的連接查詢時,大表在前,小表在后 不使用表別名,通過字段前綴區(qū)分不同表中的字段 查詢條件中的限制條件要寫在表連接條件前 盡量使用索引的字段做為查詢條件 |
|
|