淺析數(shù)據(jù)庫(kù)中內(nèi)連接、全連接與左右連接的不同點(diǎn)
我們經(jīng)常用到2個(gè)表的聯(lián)合查詢,有時(shí)候用到內(nèi)連接,全連接,以及左右連接,是不是很復(fù)雜呢?下面給演示一下他們的區(qū)別
首先有以下2個(gè)表:
- CREATE TABLE weather
- (
- city character varying(80) NOT NULL,
- temp_lo integer NOT NULL,
- temp_hi integer NOT NULL,
- prcp real,
- date date
- )
- WITH (
- OIDS=FALSE
- );
- ALTER TABLE weather OWNER TO postgres;
- -----------------------------------------------------------
- REATE TABLE cities
- (
- "name" character varying(80) NOT NULL,
- "location" point
- )
- WITH (
- OIDS=FALSE
- );
- ALTER TABLE cities OWNER TO postgres;
讓我們想看看里面的數(shù)據(jù)吧
下面就開(kāi)始內(nèi)連接了。不用太多的說(shuō)明,看圖片就知道怎么回事了
看到了嗎,inner 和 select * from weather,cities where city =name 輸出一樣的,都是一一對(duì)應(yīng)的輸出。這個(gè)我喜歡!
下面在看看全連接,左右連接的圖片
可以看得出來(lái),全連接呢,就是2個(gè)表的所有數(shù)據(jù)都被列舉出來(lái),如果他表中沒(méi)有對(duì)于的數(shù)據(jù)呢,就補(bǔ)空。
左右連接為全連接的子集(我是這么認(rèn)為的)左連接以前表為基準(zhǔn),后表沒(méi)有的數(shù)據(jù)補(bǔ)控
右連接已后表為基準(zhǔn),前表沒(méi)有的就補(bǔ)空。
原文鏈接:http://www.cnblogs.com/yongjun-zou/archive/2010/08/22/1805870.html
【編輯推薦】