連接(join)可以在SELECT語句的FROM子句或WHERE子句中建立,在FROM子句中指出連接時有助于將連接操作與WHERE子句中的搜索條件區(qū)分開來。連接可以對同一個表操作,也可以對多個表操作,對同一個表操作的連接稱為自連接(self join)。 連接類型(join type)分為三種:內(nèi)連接、外連接和交叉連接。 內(nèi)連接(inner join):使用比較運算符進行表間某(些)列數(shù)據(jù)的比較操作,并列出這些表中與連接條件相匹配的數(shù)據(jù)行。 外連接(outer join):與內(nèi)連接不同的是外連接不只列出與連接條件相匹配的行,而且列出左表(左外連接時)、右表(右外連接時)或兩個表(全外連接時)中所有符合條件的數(shù)據(jù)行。 交叉連接(cross join):返回連接表中所有數(shù)據(jù)行的笛卡爾積。 內(nèi)鏈接分為等值連接和不等連接: 等值連接(equijoin):在連接條件中使用等于(=)運算符比較被連接列的列值,其查詢結(jié)果中列出被連接表中的所有列,包括其中的重復(fù)列。 不等連接(non-equijoin):在連接條件使用除等于運算符以外的其它比較運算符比較被連接的列的列值。 注意:自然連接(natural join)是一種特殊的等值連接。它使用選擇列表指出查詢結(jié)果中所包括的列,由此刪除連接表中的重復(fù)列。 Book數(shù)據(jù)表  Publishers數(shù)據(jù)表  自連接 select * from books b1 [inner] join books b2 on b1.price = b2.price  內(nèi)連接(簡稱連接) select * from books b [inner] join publishers p on b.publisher_id = p.publisher_id  自然連接 select b.*, p.name from books b [inner] join publishers p on b.publisher_id = p.publisher_id  左外連接(簡稱左連接) select * from books b left [outer] join publishers p on b.publisher_id = p.publisher_id  右外連接(簡稱右連接) select * from books b right [outer] join publishers p on b.publisher_id = p.publisher_id  全外連接(簡稱全連接) select * from books b full [outer] join publishers p on b.publisher_id = p.publisher_id  交叉連接 select * from books cross join publishers  【2013-07-3更新】下圖由 Moffatt在2008年制作: 
|