淺析數據庫中內連接、全連接與左右連接的不同點
我們經常用到2個表的聯合查詢,有時候用到內連接,全連接,以及左右連接,是不是很復雜呢?下面給演示一下他們的區別
首先有以下2個表:
- 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;
讓我們想看看里面的數據吧
下面就開始內連接了。不用太多的說明,看圖片就知道怎么回事了
看到了嗎,inner 和 select * from weather,cities where city =name 輸出一樣的,都是一一對應的輸出。這個我喜歡!
下面在看看全連接,左右連接的圖片
可以看得出來,全連接呢,就是2個表的所有數據都被列舉出來,如果他表中沒有對于的數據呢,就補空。
左右連接為全連接的子集(我是這么認為的)左連接以前表為基準,后表沒有的數據補控
右連接已后表為基準,前表沒有的就補空。
原文鏈接:http://www.cnblogs.com/yongjun-zou/archive/2010/08/22/1805870.html
【編輯推薦】