联合查询比较

我们经常用到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个表的所有数据都被列举出来,如果他表中没有对于的数据呢,就补空。

左右连接为全连接的子集(我是这么认为的)左连接以前表为基准,后表没有的数据补控

右连接已后表为基准,前表没有的就补空。

 

 

 

 

 

 

posted @ 2010-08-22 18:15  国际海员  阅读(572)  评论(0编辑  收藏  举报